В стеке протоколов TCP/IP главную роль играют числовые IP-адреса узлов. Об их устройстве, о динамических и статических адресах мы также говорили в главе 5. Для пользователя Интернета большее значение имеют доменные имена узлов. Между доменными именами и IP-адресами ресурсов существует взаимно-однозначное соответствие – по IP-адресу, если он относится к зарегистрированным ресурсам, всегда можно узнать доменное имя, и наоборот. В явном порядке это можно сделать через сервисы типа 2ip.ru. В неявном соответствие IP-адреса и доменного имени каждый раз устанавливает браузер, когда вы набираете адрес в адресной строке или щелкаете по ссылке.
Проделывается эта операция через запрос специального DNS-сервера. DNS-серверы образуют иерархию, в главе которой стоят 13 головных серверов, хранящих официальную информацию о соответствии зарегистрированных доменных имен IP-адресам (серверы эти для надежности имеют копии-зеркала – всего около ста в различных регионах мира), ниже их стоят региональные DNS-серверы, еще ниже – DNS-серверы крупных провайдеров и т. д. Нижележащие серверы периодически обновляют хранящуюся в них информацию (не реже, чем раз в сутки), обращаясь к вышестоящим. Такими образом, информация о соответствии доменного имени и IP-адреса поступает на компьютер пользователя за минимальное время – браузеру нет нужды обращаться к головным DNS-серверам, если он находит информацию поближе. Но пауза в обновлении информации о DNS-именах по цепочке серверов может иметь значение – например, отключенный по какой-то причине ресурс будет доступен еще в течение некоторого времени.
Вся система доменных имен имеет иерархическую структуру, организованную по принципу «вассал моего вассала – не мой вассал». Доменные имена состоят из отдельных доменов, как минимум первого и второго уровней, но может быть и третий, и четвертый уровень и т. д. Уровни записываются справа налево через точку, по образцу mywife.myname.ru, и каждый нижележащий уровень принадлежит только вышележащему. В приведенном примере ru – домен первого уровня (или доменная зона, о них мы поговорим позже), myname – принадлежащий, например, вам лично домен второго уровня, который вам присвоили с разрешения распорядителя зоны RU, а mywife – домен третьего уровня, создание которого находится только в вашей компетенции.
13.1.2. URL – универсальный ресурсный указатель
Для доступа к конкретным страничкам на сайтах знать доменное имя недостаточно. Ведь оно указывает только на компьютер-сервер, но ничего не говорит о том, по какому протоколу связываться (запрашиваем ли мы веб-страницу, просто файл для скачивания или, может быть, обращаемся в группы новостей Usenet), а также к какому именно файлу на сервере идет запрос. Поэтому полный интернет-адрес указывается в виде Uniform Resource Locator (URL) – что можно перевести, как «универсальный ресурсный указатель». URL создается по такому образцу:
Протокол://доменное_имя/имя_каталога/:имя_файла
Естественно, если файл лежит в корневом каталоге (папке) сервера, то элемент имя_каталога – лишний. При этом элемент протокол: для веб-страниц – HTTP, для скачивания файлов – FTP, остальные протоколы для нас не очень актуальны. Принципы построения доменного имени мы описали ранее, а все, что после него, – почти идентично обычным путям в файловой системе компьютера, за тремя важными исключениями:
♦ во-первых, вместо обратного слэша «\» (как в Windows) здесь ставится прямой «/» (так принято в UNIX, в среде которой это все создавалось);
♦ во-вторых, имена файлов и каталогов в общем случае могут записываться только латиницей. В ряде случаев кириллические имена папок или страниц допустимы, но, как правило, в таком неудобоваримом виде, как что-то вроде этого: %D0%A8%D0%B0%D1%85%D0%BC%D0%B0%D1%82%D1%8B (так выглядит слово «Шахматы» в варианте кодировки Unicode под названием UTF-8). О возможности регистрации кириллических доменных имен мы поговорим отдельно;
♦ а в-третьих, эти имена в ряде случаев чувствительны к регистру букв: Vasya.html, vasya.html и VASYA.HTML – это могут быть разные файлы, а не одинаковые, как в Windows. Причем обратите внимание, что в доменных именах можно употреблять любой регистр букв (наименование зоны RU и ru – одно и то же), а вот в наименованиях папок и файлов – лучше только тот, что указан. Так, http://sony.com/product.html
и http://SONY.COM/product.html – это одно и то же, а вот адрес http://sony.com/PRODUCT.HTML может указывать на совсем другой файл. Многие интернет-серверы (например, основанные на системе Windows Server) такой строгости не придерживаются и допускают произвольное употребление регистра букв в названиях папок и файлов, но на всякий случай это следует иметь в виду.