Секция [Accept] Она содержит типы данных, которые оправляет клиент и которые найдены в виде:
Accept: type/subtype {parameters} - в заголовке запроса
В случае присутствия этих параметров (например, "q=0.100") они передаются непосредственно в качестве значения параметра Accept. Каждый вид передаваемых сведений должен иметь свой параметр Accept.
Секция[System] Эта секция включает в себя параметры, специальные для Windows реализации CGI:
GMT Offset Это количество секунд. Для вычисления локального времени клиента их следует прибавить к времени по Гринвичу.
Debug Mode Если на сервере активирован режим "CGI/script tracing", то значение этого параметра - "Yes".
Output File По завершении работы программы - это путь к файлу (полный), в который следует поместить сведения, отсылаемые клиенту сервером.
Content File Это путь к файлу (полный), где находится дополнительная информация, которая поступила одновременно с запросом. Секция [Extra Headers] В ней находятся "дополнительные" заголовки. В виде: "параметр=значение" - они включены в запрос. Серверу необходимо раскодировать и параметр, и его значение. И сделать это нужно раньше, чем они будут помещены как следствие в файле данных CGI. Секция[form External] Если декодированная строка содержит управляющие символы: двойные кавычки, возврат каретки, перевод строки и другие, если размер декодированной строки больше 254 символов, то сервер размещает это значение в индивидуальный временный файл, а в секции [form External] размещает следующую строку в виде:
параметр=путь длина.
путь - полный путь, а так же имя временного файла, которое содержит декодированное значение параметра, длина - это длина этого файла в байтах.
Секция [form Literal] В случае запроса типа http POST, пришедшего от клиента из HTML-формы (в виде содержимого application/x-www-form-urlencoded или multipart/form-data), сервер раскодирует сведения из формы, поместив их в секцию [form Literal].
Секция [form File] Запрос может иметь не только один, но и несколько загруженных у клиентафайлов, в случае если он пришел в следующем виде multipart/form-data. Тогда любой загруженный файл помещается в особый временный файл, а в секции [form File] строки имеют такой же формате, что и секции [form External]. В этом случае любая строка параметра будет такой:
параметр=[путь_к_файлу] длина тип ссылка [имя_файла].
путь_к_файлу - полный путь к временному файлу, который содержит загруженный файл,
длина - это длина загруженного файла в байтах,
тип - это MIME тип загруженного файла,
ссылка - это способ кодировки загруженного файла,
имя_файла - исходное название загруженного файла. Использовать квадратные скобки обязательно, так как в имени файла и в пути могут содержаться символы пробела.
В обязательном порядке должны быть использованы квадратные скобки, так как путь и наименование файла могут иметь символы пробела.
Секция[form Huge] Сервер не выполняет декодировку, если общая длина строки с расшифрованными параметрами выше 65,535 байтов. Сервер оставляет данный в Content File, а строки в виде: параметр=смещение длина - располагает в секции [form Huge].
«Смещение» здесь -это смещение от начала Content File (по нему располагается необходимый параметр); «длина» - длина значения избранного параметра в байтах. Смещение можно применять для поиска начала значения избранного параметра, а длину - для чтения значения этого параметра. Нужно помнить о следующем: в случае кодировки параметра перед использованием его следует раскодировать.
В этом примере в форме содержитися небольшое поле, select multiple с двумя небольшими секциями, поле длиной 250 символов, поле, которое содержит специальные символы, а так же поле длиной 330KB.