РНР 5 в подлиннике

Страница 28 из 554


58

Часть I. Основы Web-программирования

2000 г. При этом файла с именем 20.html физически нет, существует только виртуальный путь к нему, а всю работу по генерации страницы берет на себя программное обеспечение сервера (в последней части этой книги мы расскажем, как такое программное обеспечение можно написать).

Есть и другой механизм обработки виртуальных путей, когда запрошенные файлы представляют собой статические объекты, но располагаются где-то в другом месте. С точки зрения программного обеспечения путь к документу отсчитывается от некоторого корневого каталога, который указывает администратор сервера. Практически все серверные программы позволяют создавать псевдонимы для физических путей. Например, если мы вводим:

http://example.com/cgi-bin/something

отсюда не следует, что существует каталог cgi-bin, — это может быть лишь имя псевдонима, ссылающегося на какой-то другой каталог.

Расширение HTML (от англ. HyperText Markup Language — язык разметки гипертекста) принято давать документам со страницами Web. HTML представляет собой язык, на котором задается расположение текста, рисунков, гиперссылок и т. д. Кроме HTML часто встречаются и другие форматы данных: GIF, JPG — для изображений; CGI, PL — для сценариев (программ, запускаемых на сервере) и т. д. Вообще говоря, сервер можно настроить таким образом, чтобы он корректно работал с любыми расширениями, например, никто не запрещает нам сконфигурировать его, чтобы файлы с расширением НТМ также рассматривались как HTML-документы (что часто и делается).

Браузеру совершенно все равно, какое расширение у запрошенного объекта — он ориентируется по другому признаку.

В данной главе мы познакомились с основами устройства сети Интернет и протоколами передачи данных, без которых Web-программирование немыслимо. Мы узнали, как машины адресуют друг друга в глобальной сети, как они обмениваются данными, а также рассмотрели важное понятие — URL, с которым нам неоднократно придется сталкиваться в дальнейшем.

Резюме

ГЛАВА 2

Интерфейс CGI и HTTP

Листинги данной главы можно найти в подкаталоге cgi.

Термин CGI (Common Gateway Interface, общий шлюзовой интерфейс) обозначает набор соглашений, которые должны соблюдаться Web-серверами при выполнении ими различных Web-приложений. Вскоре мы расшифруем его смысл более подробно. Фактически, до недавнего времени все Web-программирование представляло собой программирование CGI-приложений. В последнее время ситуация изменилась. И хотя CGI все еще остается негласным стандартом для Web-приложений, механизм работы CGI-программ несколько обновился.

В этой и следующей главах мы будем разбирать основы традиционного CGI-npo-граммирования, не касаясь напрямую РНР. В качестве языка для примеров выбран С, поскольку его компиляторы можно найти практически в любой операционной системе, и по той причине, что он "наиболее красиво" показывает, почему... его не следует использовать в Web-программировании. Да-да, это не опечатка. Вскоре вы поймете, что мы хотели сказать.

Что такое CGI?

Итак, мы набираем в нашем браузере http://example.com:80/path/to/document.ext

и ожидаем, что сейчас получим HTML-документ (или документ другого формата — например, рисунок). Иными словами, мы рассчитываем, что на хосте в каталоге /path/to/ расположен файл document.ext, который нам сейчас доставят (передаст его, кстати, Web-сервер, подключенный к порту 80 на сервере).

Однако на самом деле ситуация несколько иная. По двум причинам.

□ Путь /path/to/, равно как и файл document.ext на хосте, может вообще не существовать. Ведь администратор сервера имеет возможность задать псевдоним (alias) для любого объекта на сервере. Кроме того, даже если и не назначено никакого псевдонима, все равно имеется возможность так написать программы для Web-сервера, что они будут "перехватывать" каждое обращение к таким путям и соответствующим образом реагировать на это.




  Hostland.Ru

 «Бесплатный хостинг Hostland.Su» © 2006