
Глава 6. Структура и описание протокола HTTP 185
этой книги было помещено на Web-сервер и стало доступным по HTTP. Местонахо-
ждение книги может быть указано с помощью URL http://www.research.att.com/
books/kandr.ps.gz. Книга также может быть доступной через ан.опимный FTP-cep-
вер в каталоге pub/bala на компьютере ftp.research.att.com. Таким образом, она
имеет альтернативный URL ftp://ftp.research.att.com/pub/balaAandr.ps.gz. Этот
URL задает местонахождение копии ресурса. Таким образом, URI книги может быть
представлен любым из упомянутых выше URL или URN (номером ISBN).
URI считается абсолютным, если строка начинается со схемы, за которой следует
строка, представляющая ресурс, который может быть получен через схему. Схема
просто указывает протокол, который будет исгюльзоваться для доступа к ресурсу.
Относительный URI не начинается с имени схемы. В самой первой спецификации
протокола HTTP, известной позднее как НТТР/0.9 [BL92a], было перечислено пять
схем: file, news, http, telnet, gopher. On также предвосхитил использование по мень-
шей мере еще двух (WAIS и Х-500) и зарезервировал схемы для них.
Хотя имя схемы связано с определенным протоколом, для доступа к ресурсу но
URL может быть задействовано более одного протокола. Для обработки Web-за-
проса на ресурс обычно требуется несколько протоколов, таких как Domain Name
System (DNS) для определения IP-адреса хоста, на котором размещен ресурс, по
его доменному имени, и Transmission Control Protocol (TCP) для загрузки ресурса
по соединению транспортного уровня. Точно так же для идентификации одного ре-
сурса может быть использовано более одиой схемы.
Наиболее часто в Web используется схема http. Каждая схема имеет свой собст-
венный синтаксис, и для всех схем предусмотрены механизмы для именования ре-
сурсов. За счет отделения схемы от внутреннего синтаксиса конкретного протоко-
ла механизм именования в Web дает возможность легко адаптировать себя для
других систем. Поскольку доступ к одному и тому же ресурсу может быть осущест-
влен с использованием различных протоколов, другие системы могут быть наложе-
ны поверх HTTP. Возможность использовать не-НТТР URI, т.е. работать с ресур-
сами, доступ к которым осуществляется через протоколы, отличные от HTTP,
была необходима, поскольку подобная практика была вполне типичной на момент
создания Web. Отделение схемы от синтаксиса привело к тому, что Web преврати-
лась во внешний интерфейс для доступа к ресурсам, для работы с которыми обыч-
но используются другие протоколы, например, ftp. В качестве примеров не-НТТР
URI можно привести rtsp://cHps.foo.com/preview/audio, telnet://ox.aciri.org
и т.д. Столкнувшись с не-НТТР URI, браузер осуществляет синтаксический ана-
лиз имени схемы до символа ":" и активизирует соответствующий обработчик про-
токола
—
RTSP (Real Time Streaming Protocol) и Telnet, соответственно.
ОБМЕН ЗАПРОСАМИ-ОТВЕТАМИ
Протокол HTTP задает синтаксис и семантику, в соответствии с которыми ком-
поненты Web, такие как клиенты и серверы, взаимодействуют друг с другом.
HTTP-сообщение структурировано и обладает определенным синтаксисом. HTTP
является запрос-ответным протоколом, в котором запрос — это сообщение, посы-
лаемое клиентом принимающему серверу. Принимающим может быть исходный
сервер — сервер, па котором размещаются или генерируются ресурсы, или проме-
жуточное звено, такое как прокси-сервер. Сервер-получатель отправляет обратно
сообщение-ответ. Клиентом может выступать агент пользователя, нечто, иниции-
ровавшее запрос, или какой-либо компонент на пути между инициатором и конеч-
ным сервером-получателем. Протокол определяет набор расширяемых методов за-
проса, которые используются клиентом для выполнения операций, таких как полу-