Избранное решение идентифицирует страницы таким образом, что сразу были решены все проблемы. Каждой странице был приписан URL (Uniform Resource Locator — унифицированный указатель информационного ресурса), который служит именем страницы во Всемирной паутине. URL делится на три части: протокол (который также называют схемой — scheme), DNS-имя машины, на которой расположена страница, и путь, уникально определяющий отдельную страницу (файл для чтения или программу, предназначенную для запуска на машине). В общем случае у пути есть иерархическое имя, которое моделирует структуру каталогов файлов. Однако интерпретация пути — это работа сервера. Действительная структура каталогов может и не отображаться.
В качестве примера приведем URL страницы, указанный на рис. 7.7: http://www.cs.washington.edu/index.html
Этот URL состоит из трех частей: протокола (http), DNS-имени хоста (www.cs.wa-shington.edu) и имени пути (index.html ).
Когда пользователь щелкает мышью на гиперссылке, браузером выполняется ряд действий, приводящих к загрузке страницы, на которую указывает ссылка. Рассмотрим каждое действие, происходящее после выбора этой ссылки.
1. Браузер определяет URL (по выбранному элементу страницы).
2. Браузер запрашивает у службы DNS IP-адрес сервера www.cs.washington.edu.
3. DNS дает ответ 128.208.3.88.
4. Браузер устанавливает TCP-соединение с 80-м портом (общеизвестным портом для HTTP-протокола) машины 128.208.3.88.
5. Браузер отправляет HTTP-запрос на получение файла /index.html.
6. Сервер www.cs.washington.edu высылает страницу, как HTTP-ответ, например, отправляя файл /index.html.
7. Если страница содержит URL, которые необходимы для отображения, браузер получает другие URL, используя тот же процесс. В этом случае URL включают множество размещенных изображений, также полученных с www.cs.washington.edu, размещенное видео с youtube.com и скрипт с google-analitics.com.
8. Браузер отображает страницу /index.html в том виде, в котором она представлена на рис. 7.7.
9. Если в течение некоторого времени на те же серверы не поступает других запросов, TCP-соединения обрываются.
Многие браузеры отображают текущее выполняемое ими действие в строке состояния внизу экрана. Это позволяет пользователю понять причину низкой производительности: например, не отвечает служба DNS или сервер или просто сильно перегружена сеть при передаче страницы.
URL-дизайн не ограничен в том смысле, что он позволяет браузерам использовать различные протоколы для того, чтобы обрабатывать разные виды ресурсов. На самом деле, были определены URL и для многих других протоколов. Несколько упрощенные формы стандартных схем URL приведены в табл. 7.9.
Давайте коротко остановимся на этом списке. Протокол http — это родной язык Всемирной паутины, тот, на котором разговаривают веб-серверы. HTTP — это сокращение выражения HyperText Transfer Protocol (протокол передачи гипертекста). Мы поговорим о нем более детально немного позднее.
Протокол ftp используется для доступа к файлам через FTP, протокол передачи файлов в Интернете. FTP предшествует возникновению Всемирной паутины. Он используется уже более трех десятилетий. Веб позволяет легко получить доступ к файлам, расположенным на различных FTP-серверах по всему миру, предоставляя простой интерфейс, основанный на работе с мышью, вместо интерфейса, построенного на вводе команд в командную строку. Упрощение способа доступа к информации является одной из причин повышения популярности Всемирной паутины и ее быстрого роста.
Таблица 7.9. Некоторые стандартные схемы URL
Имя
Используется
Пример
http
Гипертекст (HTML)
http://www.ee.uwa.edu/~rob/
https
Гипертекст с обеспечением безопасности
https://www.blank.com./accounts/
ftp
FTP
ftp://ftp.cs.vu.nl/pub/minix/README
file
Локальный файл
file:///usr/suzanne/prog.c
mailto
Отсылка почты
mailto:[email protected]
rtsp
Потоковая передача мультимедиа
rtsp://youtube.com/montypython.mpg
sip
Мультимедийный звонок
sip:[email protected]
about
Информация браузера
about:plugins
Можно получить доступ к локальному файлу как к веб-странице, используя протокол file или просто написав его имя. Для применения этого способа не нужен сервер. Конечно, это работает только для локальных файлов, а не для удаленных.
Протокол mailto, на самом деле, не позволяет запрашивать веб-страницы, но он все равно полезен. С его помощью можно отсылать почту через веб-браузер. Большинство браузеров отвечают на переход пользователя по ссылке mailto запуском пользовательского агента, в котором можно начинать писать сообщение с уже добавленным адресом.
Протоколы rtsp и sip предназначены для установления сессий передачи мультимедийных потоков, а также аудио- и видеозвонков.
Наконец, протокол about предоставляет информацию о браузере. Например, если вы пройдете по ссылке about:plugins, большинство браузеров отобразит страницу, перечисляющую типы MIME, которые доступны благодаря расширениям браузера (так называемым плагинам).
Вкратце, URL были разработаны не только для навигации во Всемирной паутине, но и для того, чтобы запускать более старые протоколы, такие как FTP и электронная почта, и новые для аудио и видео и, конечно, для того, чтобы предоставить удобный доступ к локальным файлам и информации браузера. Благодаря этому подходу теряется необходимость во всех программах, предоставляющих пользовательский интерфейс для вышеперечисленных нужд, а доступ в Интернет практически полностью интегрируется в одну программу: веб-браузер. Если бы не тот факт, что эта идея пришла в голову британского физика, работающего в исследовательской лаборатории в Швейцарии, можно было бы легко предположить, что это был прекрасный план, разработанный рекламным отделом компании, выпускающей программное обеспечение.
Несмотря на все эти выдающиеся качества, постоянно увеличивающееся использование Всемирной паутины выявило некоторые недостатки, заложенные в схему URL.
URL указывает на один отдельный хост, но иногда имеет смысл ссылаться на страницу, не указывая того, где она находится. Например, было бы неплохо, если бы страницы, на которые идет множество ссылок, многократно копировались в разных частях сети, чтобы уменьшить трафик. Но мы не можем сказать: «Мне нужна страница xyz и мне все равно, откуда она возьмется».
Чтобы решить эту проблему, URL были обобщены до URI (Uniform Resource Identifier — универсальный идентификатор ресурса). Некоторые URI указывают, как определить место нахождения ресурса. Это URL. Другие URI указывают имя ресурса, но не место его нахождения. Эти URI называются URN (Uniform Resource Name — унифицированное имя ресурса). Правила написания URI отражены в RFC 3986, другие схемы использования URI определяются IANA. Существует много различных типов URI, помимо перечисленных в табл. 7.9; мы перечислили только те, что сегодня наиболее часто используются во Всемирной паутине.
Типы MIME
Для отображения новой (и каждой) страницы браузер должен понять ее формат. Чтобы все браузеры могли отображать любые страницы, они пишутся на стандартизованном языке HTML. На сегодняшний день он является общепринятым в Интернете. Более детально мы рассмотрим его ниже.
Несмотря на то что браузер по сути дела представляет собой интерпретатор HTML, большинство браузеров оснащается многочисленными кнопками и функциями, облегчающими навигацию по Всемирной паутине. У многих браузеров есть кнопки для возврата на предыдущую страницу и перехода на следующую страницу (последняя доступна только в том случае, если пользователь уже возвращался назад), а также кнопка для прямого перехода на выбранную пользователем начальную страницу. Большинство браузеров поддерживают в меню команды для установки закладки на текущей странице и отображения списка закладок, что позволяет попадать на любую страницу при помощи всего одного щелчка мышью.