Програмирование в HTML

Страница: 15/22

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:TEMPHS19AF6C.000 300 fieldwithlinebreaks=C:TEMPHS19AF6C.001 43 [Form Huge] field230K=C:TEMPHS19AF6C.002 276920

Реферат опубликован: 7/04/2008