Почему разница в форматировании URL?
Почему этот URL заканчивается на
.html
а некоторые нет, а большинство из них являются HTML-страницами?Почему этот URL начинается с
www
а некоторые нет, а все они есть во всемирной паутине?
2 ответа
Потому что часто в наше время HTML-страницы генерируются динамически.
В большинстве случаев расширение описывает производителя HTML-страницы. Например,.asp означает, что страница была сгенерирована ASP- кодом (программный код, встроенный в страницу). То же самое для.jsp, Java Server Pages, которые находятся на страницах сервера, содержащих смесь кода HTML и Java. Есть множество других расширений, которые используют тот же механизм (.do, .aspx, .cf,...)
В конце концов, все, что получает браузер - это HTML, но вся компиляция и логика были запущены на серверах.
Для www.mydomain.com это фактически означает, что вы обращаетесь к серверу (или маршрутизатору) с именем "www" в домене mydomain.com. Хотя это соглашение, вы не обязаны следовать ему. Домены (в записях DNS) можно настроить так, чтобы они говорили "если не указано явное имя сервера, отправляйте запросы на веб-сервер").
Вы также можете дать любое другое имя веб-серверу и сделать его известным как, например, http://mywebserver.mydomain.com/.
Обратите внимание, что внешнее имя (www, mywebserver) в большинстве случаев не относится к физическому имени веб-сервера. На больших сайтах несколько серверов обрабатывают запросы, приходящие к одному имени.
URL состоит из нескольких частей:
- часть протокола
- серверная часть
часть файла / ресурса
протокол:// сервер /file_or_resource
часть протокола - http:// или ftp:// или ssh://, или что вы можете придумать. серверная часть - это все, что находится между частью протокола и частью файла / ресурса.
http://google.com/index.html
в данном случае это "google.com", в других - "user @ machine: port". Итак, это ответ на ваш второй вопрос: некоторые машины называются "www.hostname.com", а некоторые другие называются "hostname.com".
как только ваш браузер / обработчик протокола подключается к серверу, описанному в серверной части, по протоколу, описанному через протокольную часть URL-адреса, он запрашивает у сервера ресурс, указанный в ресурсной части. и это ответ на ваш первый вопрос: вы запрашиваете у сервера файл / ресурс, и сервер отвечает.
http://google.com/index.html <- you ask it for "index.html"
если на сервере есть, хорошо. если имя "foo.bar" и файл существует, хорошо. если сервер знает, что делать, когда вы спрашиваете его "more.money".. круто.
Подробнее об этом читайте в Википедии.