Версия спецификации CGI. Формат: CGI/версия. Для
данной версии, "CGI/1.2 (Win)". Remote Host
- Сетевое имя хоста клиента, если доступно.
Данный параметр может быть использован для
опознавание клиента.
Remote Address
- Сетевой (IP) адрес клиента. Данный параметр
может быть использован для проверки
пользователя если отсутствует сетевое имя.
Authentication Method
- Если используется защищенный вызов CGI
программы, это протокол-зависимый метод
аутентификации, используемый для аутентификации
пользователя.
Authentication Realm
- Если используется защищенный вызов CGI
программы, это протокол-зависимый сервис,
используемый для аутентификации пользователя.
Список пользователей для полученного вида
сервиса iпроверяется для аутентификации
пользователя.
Authenticated Username
- Если используется защищенный вызов CGI
программы, это имя пользователя, которое клиент
использует для аутентификации при доступе к
CGI-программе.
Секция [Accept]
Данная секция содержит типы данных,
посылаемых клиентом, найденные в заголовке
запроса в виде
Accept: type/subtype {parameters}
Если данные параметры присутствуют
(например, "q=0.100") , они передаются как
значения параметра Accept. Для каждого типа
передаваемых данных заводится свой параметр Accept.
Секция [System]
Данная секция содержит параметры,
специфические для Windows реализации CGI:
GMT Offset
- Количество секунд, которое необходимо
добавить к времени по Гринвичу для вычисления
локального времени клиента.
Debug Mode
- Данный параметр имеет значение "Yes"
если включен режим "CGI/script tracing" на сервере.
Output File
- Полный путь к файлу, в который необходимо
поместить данные, отсылаемые сервером клиенту
после завершения работы программы.
Content File
- Полный путь к файл у в котором содержится
дополнительная информация, поступающая вместе с
запросом.
Секция [Extra Headers]
Данная секция содержит
"дополнительные" заголовки, которые
включены в запрос в виде
"параметр=значение". Сервер должен
раскодировать как параметр, так и его значение
прежде чем они будут помещены в файл данных CGI.
Секция [Form Literal]
Если запрос от клиента пришел в виде HTTP POST
из HTML формы (с типом содержимого
application/x-www-form-urlencoded или multipart/form-data), то сервер
раскодирует данные из формы и поместит их в
секцию [Form Literal].
Для URL-кодированных данных формы, строка
передаваемых параметров выглядит как
"параметр=значение&параметр=значение&...",
где значения находятся в url-кодированном формате.
Сервер разделяет "параметр=значение" по
символу '&', затем разделяет собственно
"параметр" и "значение", декодирует
"значение" и помещает результат в виде
"параметр=раскодированное_значение" в
секцию [Form Literal].
Для многостраничных данных строка данных
представляется в многостраничном MIME формате, где
каждое поле представлено как отдельная часть
(файл). сервер декодирует имена и значение каждой
части и размещает их в формате
"параметр=значение" в секции [Form Literal].
Если форма содержит какие-либо элементы SELECT
MULTIPLE, то будет создано несколько строк с вида
"параметр=значение" с одинаковым именем
"параметра". В этом случае генерирует
нормальную строку "параметр=значение" для
первого встречающегося элемента, а каждый
следующий представляет в виде
"параметр_X=значение", где "X" -
увеличивающийся счетчик.
Секция [Form External]
Если размер декодированной строки
превышает 254 символа или декодированная строка
содержит управляющие символы, такие, как перевод
строки, возврат каретки, двойные кавычки и т.д., то
сервер помещает данное значение в отдельный
временный файл, а в секцию [Form External] помещает
строку в виде:
параметр=путь длина
где путь - это полный путь и имя
временного файла, содержащего декодированное
значение параметра, а длина - длина в байтах этого
файла.
Секция [Form Huge]
Если общая длина строки с кодированными
параметрами превышает 65,535 байт, то сервер не
выполняет декодирование, а оставляет данный в
Content File, а в секцию [Form Huge] помещает строки в виде:
параметр=смещение длина
где смещение - это смещение от начала
Content File по которому находится требуемый параметр,
а длина - длина в байтах значения выбранного
параметра. Вы можте использовать смещение
для выполнения поиска начала значения
выбранного вами параметра и использовать длину
для чтения значения выбранного параметра. Не
забывайте, что если параметр закодирован, то вам
необходимо раскодировать его перед
использованием.
Секция [Form File]
Если запрос пришел в виде multipart/form-data,
то он может содержать один или несколько
загруженных с клиента файлов. В этом случае
каждый загруженный файл размещается в
специальном временном файле, а в секции [Form File]
строки имеют тот же формат, что и секции [Form External].
каждая строка параметра в этом случае выглядит
так:
параметр=[полный_путь_к_файлу] длина тип ссылка [имя_файла]
где полный_путь_к_файлу - это путь к
временному файлу, содержащему загруженный файл, длина
- длина в байтах загруженного файла, тип - тип
MIME загруженного файла, ссылка - способ
кодировки загруженного файла и имя_файла -
исходное название загруженного файла.
Использование квадратных скобок обязательно,
поскольку имя файла и путь могут содержать
символы пробела.
Пример декодированных значений
формы
В данном примере форма содержит небольшое
поле, SELECT MULTIPLE с 2-мя небольшими секциями, поле
длиной 300 символов, поле, содержащее специальные
символы и поле длиной 230KB.
[Form Literal]
smallfield=123 Main St. #122
multiple=first selection
multiple_1=second selection
[Form External]
field300chars=C:\TEMP\HS19AF6C.000 300
fieldwithlinebreaks=C:\TEMP\HS19AF6C.001 43
[Form Huge]
field230K=C:\TEMP\HS19AF6C.002 276920
