Интернет решения от доктора Боба | страница 15



Environment Variable Purpose/Meaning/Value
GATEWAY_INTERFACE Версия CGI для которой скомпилирован web сервер
SERVER_NAME IP адрес сервера или имя.
SERVER_PORT Порт на сервере, которые принимает HTTP запросы.
SERVER_PROTOCOL Имя и версия протокола, используемая для обработки запросов.
SERVER_SOFTWARE Имя (и обычно версия) программного обеспечения сервера.
AUTH_TYPE Схема проверки прав используемая сервером (NULL, BASIC)
CONTENT_FILE Файл используемый для передачи данных CGI программе (только Windows HTTPd/WinCGI).
CONTENT_LENGTH Количество байтов переданное на стандартный вход (STDIN) как содержимое POST запроса.
CONTENT_TYPE Тип данных переданных на сервер.
OUTPUT_FILE Имя файла для результата (только Windows HTTPd/WinCGI).
PATH_INFO Дополнительный, относительный путь переданный на сервер после имени скрипта, но до данных запроса.
PATH_TRANSLATED Та же самая информация, но преобразованная из относительного пути в абсолютный.
QUERY_STRING Данные переданные как часть URL, все после символа ? в URL.
REMOTE_ADDR Адрес IP или имя сервера конечного пользователя.
REMOTE_USER Имя пользователя, если используется схема проверки прав.
REQUEST_LINE Полный HTTP запрос представляемый сервером (зависит от сервера).
REQUEST_METHOD Указывает метод передачи данных, как часть URL (GET) или через стандартный ввод STDIN (POST).
SCRIPT_NAMEИмя запущенного скрипта.

Немного еще дополнительной, но важной информации. Немного об переменных среды, которые особо важны для обработки запроса, и небольшое описание по обработке стандартных CGI приложений:

REQUEST_METHOD – указывает, как посланы данные, как POST или как GET метод.

QUERY_STRING – если используется GET

CONTENT_LENGTH – если мы используем POST, то мы должны прочитать "CONTENT_LENGTH" символов со стандартного ввода (которые оканчиваются "Query", подобно QUERY_STRING при использовании метода GET).

Во всех случаях стандартное CGI приложение должно писать свой вывод на стандартный выход, если мы используем консольное приложение.

Теперь с помощью компонента TBDosEnvironment мы создадим приложение, которое примет все три переменных среды, описанных выше и получит необходимые данные. После этого мы напишем код генерирующий вывод.

Правда просто? Для другого очень маленького (39 Кб) стандартного CGI приложения, проверьте Search Engine на моем web сайте. Краткий исходный код будет опубликован в одной из статей в The Delphi Magazine, но я могу сказать, что базовый протокол CGI связи не более сложный, чем представленный здесь.