|
ршающаяся двумя косыми чертами (в
нашем примере http://), указывает браузеру, какой высокоуровневый протокол
нужно использовать для обмена данными с Web-сервером. Обычно это HTTP, но мо-
гут поддерживаться и другие протоколы. Например, протокол HTTPS позволяет пере-
давать информацию в специальном зашифрованном виде, чтобы злоумышленники не
могли ее перехватить, — конечно, если Web-сервер способен с ним работать. Нужно
заметить, что все подобные протоколы базируются на сервисе, предоставляемом TCP,
и по большей части представляют собой лишь набор текстовых команд. В следующей
главе мы убедимся в этом утверждении, разбирая, как работает протокол HTTP.
Имя хоста
Следом за протоколом идет имя узла, на котором размещается запрашиваемая стра-
ница (в нашем примере — www.somehost.com). Это может быть не только доменное
имя хоста, но и его IP-адрес. В последнем случае, как нетрудно заметить, мы
сможем
обращаться только к узлам (невиртуальным хостам), потому что лишь они однознач-
но идентифицируются указанием их IP-адреса.
Часть I. Основы Web-программирования 26
Порт
Сразу за именем хоста через двоеточие может следовать (а может и быть опущен)
номер порта. Исторически сложилось, что для протокола HTTP стандартный номер
порта — 80 (или 81). Именно это значение используется браузером, если пользова-
тель явно не указал номер порта. Как мы знаем, порт идентифицирует постоянно
ра-
ботающую программу на сервере (или, как ее нередко называют, сетевой демон), в
частности, порт 80 связывается с Web-сервером, который и осуществляет обработку
HTTP-запросов клиентов и пересылает им нужные документы. Существуют и другие
демоны, например, FTP и Telnet, но к ним нельзя подключиться с помощью браузера.
Путь к странице
Наконец, мы дошли до последней части адресной строки — пути к файлу страницы (в
нашем примере это /path/to/document.html). Как уже упоминалось, совершенно
не обязательно, чтобы эта страница действительно присутствовала, — вполне
типич-
на ситуация, когда страницы создаются "на лету" и не представлены отдельными
файлами в файловой системе сервера. Например, сайт новостей может использовать
виртуальные пути типа /Y/M/N.html для отображения всех новостей за число N ме-
сяца M года Y, так что пользователь, набрав в браузере адрес наподобие
http://новострой_сервер/2000/
10/20.html, сможет прочитать новости за 20 октября 2000 года. При этом файла с
именем 20.html физически нет, существует только виртуальный путь к нему, а всю
работу по генерации страницы берет на себя программное обеспечение сервера (в
последней части этой книги я расскажу, как такое программное обеспечение можно
написать).
Есть и другой механизм обработки виртуальных путей, когда запрошенные файлы
представляют собой статические объекты, но располагаются где-то в другом месте.
С
точки зрения программного обеспечения путь к документу отсчитывается от некото-
рого корневого каталога, который указывает администратор сервера. Практически
все
серверные программы позволяют создавать псевдонимы для физических путей. На-
пример, если мы вводим:
http://www.somehost.com/cgi-bin/something
отсюда не следует, что существует каталог cgi-bin, — это может быть лишь имя
псевдонима, ссылающегося на какую-то другую каталог.
Расширение html (от HyperText Markup Language — Язык разметки гипертекста)
принято давать документам со страницами Web. HTML представляет собой язык, на
котором задается расположение текста, рисунков, гиперссылок и т. д. Кроме html
часто встречаются и другие форматы данных: gif, jpg — для изображений, cgi,
pl — для сценариев (программ, запускаемых на сервере) и т. д. Вообще говоря,
сер-
вер можно настроить таким образом, чтобы он корректно работал с любыми расши-
рениями, например, никто не запрещает нам сконфигурировать его так, чтобы файлы
Глава 1. Принципы работы Интернета 27
с расширением htm также рассматривались как HTML-документы (что часто и дела-
ется).
Браузеру совершенно все равно, какое расширение у запрошенного объекта —
он ориентируется по другому признаку.
Глава 2
Интерфейс CGI
Термин CGI (Common Gateway Interface — Общий шлюзовой интерфейс) обозначает
набор соглашений, которые должны соблюдаться Web-серверами при выполнении
ими различных Web-приложений. Вскоре мы расшифруем его смысл гораз
|
|