Шаг 11.
Создание Internet-приложений в среде Delphi. Еще раз об URL и HTTP

    На этом шаге мы снова обратимся к URL и HTTP.

    На предыдущих шагах мы изложили основные принципы создания Web-приложений, пояснив их на примерах. Но рассмотреть тему приложений Web-сервера более подробно мы просто вынуждены, поскольку компоненты с палитры Internet посвящены именно этой теме. И если мы будем их осваивать, то без подробного разбора основ работы серверных приложений нам не обойтись.

Еще раз об URL

    Универсальный локатор ресурса (Uniform Resource Locator - URL) обычно определяется как полное описание местоположения в Сети некоего ресурса. Состоит он из нескольких частей, каждая из которых имеет свое назначение. Давайте посмотрим на рисунок 1, в котором приведен пример URL.


Рис.1. Пример URL

    В самом начале строки мы видим уже привычные нам символы http, означающие протокол, по которому мы будем работать с данным ресурсом. Протокол может быть другим, например, ftp и т.д. Элемент под названием Host определяет имя машины, на которой установлен Web-сервер и на которой будет выполнятся указанное далее приложение. Имя машины может еще дополнятся номером порта, по которому происходит прием данных, если этот номер отличается от принятого по умолчанию для данного протокола. Далее следует часть, под названием ScriptName, в которой указывается имя серверного приложения и путь к нему. Вся оставшаяся часть строки ресурса предназначена для обработки этим приложением. Далее следует часть под именем PathInfo - информация о пути. Здесь действительно может быть указано имя каталога на сервере. Но строго говоря это строка, которая определяет способ обработки данного запроса серверным приложением. Например, какую процедуру вызвать для обработки запроса. Информация о пути начинается за последним в строке URL символом "слэш" и заканчивается символом "?". Далее следует завершающая часть - строка запроса, Query. Здесь через символы "&" перечислены некоторые имена, которым после знака равенства присвоены некоторые значения. В данном примере, очевидно, делается запрос к приложению, работающему со "спортивными" таблицами events.db и venues.db из демонстрационной базы данных DBDEMOS, с просьбой отобрать состязания, которые будут происходить 23/06/1996 в спортивном сооружении под номером 10.

    Кроме термина URL часто упоминается сокращение URI - универсальный идентификатор ресурса. На самом деле URL является "подмножеством" URI, который используется при получении информации, части которой находятся не в одном месте, а разбросаны по Сети.

О протоколе HTTP

    Здесь мы тоже, возможно, повторимся, хотя и попытаемся сразу перейти от общих слов к деталям. Итак, как уже говорилось, протокол HTTP это протокол в стиле запрос-ответ. Сервер только отвечает на клиентские запросы. Клиент должен послать свой запрос в определенном формате. В первой строке запроса указывается метод запроса, затем интересующий клиента URI и версия используемого клиентом протокола HTTP. Затем следует какое-то количество заголовков и необязательная содержательная часть, которую клиент, возможно, хочет опубликовать на сервере. Заголовки имеют следующий формат: в начале строки указывается имя заголовка, а затем, через двоеточие, соответствующее ему значение. Например:

    GET /cgi-bin/myscript.dll/Show?VenueNo=10&Event_Date=23/06/1996
    HTTP/1.0
    Connection: Keep-Alive
    User-Agent: Mozilla/3.0b4Gold (WinNT; I)
    Host: www.myserver.com:1024
    Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*

    В этом запросе используется метод GET, затем задается нужный URI и версия протокола. Затем указывается тип соединения: после выполнения данного запроса соединение не будет обрываться. Далее следует информация о программе пользователя, пославшей запрос. В данном случае, это браузер Netscape. Затем указано имя сервера, к которому мы обращаемся, и номер используемого им порта. В последнем заголовке с именем Accept указываются типы мультимедийных файлов, которые может принимать клиентская программа.

    На следующем шаге мы рассмотрим приложения сервера Web.




Предыдущий шаг Содержание Следующий шаг