- •1. Содержание:
- •1. Html - введение
- •2. Основные положения
- •3. Как создаются html документы?
- •4. Структура документа
- •6. Тэги тела документа
- •7. Список базовых тэгов html
- •8. Тэги списков
- •9. Гипертекстовые ссылки
- •10. Графика внутри html-документа
- •11. Добавление стилей в html документ
- •12. Специальные тэги html
- •13. Html формы
- •13.1. Синтаксис форм
- •13.2. Тэги формы
- •13.3. Меню выбора в формах
- •13.4. Отправление файлов при помощи форм
- •14. Html фреймы
- •14.1. Синтаксис фреймов
- •14.5. Планирование фрэймов и взаимодействия между фрэймами
- •15. Создание карты изображений
- •16. Html таблицы
- •Основные тэги таблицы
- •Основные атрибуты таблицы
- •Пример таблицы
- •17. Обзор
- •18. Разбор данных html-форм
- •19. Вызов cgi программ
- •19.1. Командная строка
- •19.2. Метод вызова
- •19.3. Cgi файл данных
- •19.4. Секция [cgi]
- •19.5. Секция [Accept]
- •19.6. Секция [System]
- •19.7. Секция [Extra Headers]
- •19.8. Секция [Form Literal]
- •19.9. Секция [Form External]
- •19.10. Секция [Form Huge]
- •19.11. Секция [Form File]
- •19.12. Пример декодированных значений формы
- •19.13. Обработка результата
- •19.14. Специальные строки заголовка
- •19.15. Другие заголовки
- •19.16. Прямой возврат
- •20. Оптимизация графики для Web
- •21. Основы css
- •22. Практическое освоение css
- •23. Свойства элементов, управляемых с помощью css
19.11. Секция [Form File]
Если запрос пришел в виде multipart/form-data, то он может содержать один или несколько загруженных с клиента файлов. В этом случае каждый загруженный файл размещается в специальном временном файле, а в секции [Form File] строки имеют тот же формат, что и секции [Form External]. каждая строка параметра в этом случае выглядит так:
параметр=[полный_путь_к_файлу] длина тип ссылка [имя_файла]
где полный_путь_к_файлу - это путь к временному файлу, содержащему загруженный файл, длина - длина в байтах загруженного файла, тип - тип MIME загруженного файла, ссылка - способ кодировки загруженного файла и имя_файла - исходное название загруженного файла. Использование квадратных скобок обязательно, поскольку имя файла и путь могут содержать символы пробела.
19.12. Пример декодированных значений формы
В данном примере форма содержит небольшое поле, 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
19.13. Обработка результата
CGI программа возвращает результат работы, отвечающий (явно или неявно) целям запроса. Сервер кодирует результат работы в соответствии со стандартом HTTP и использует HTTP для отправки результата клиенту. Это означает, что сервер добавляет необходимый HTTP заголовки в сообщение, формируемое CGI программой.
Результат работы CGI программы состоит из двух частей: заголовка и тела сообщения. Заголовок состоит из одной или более строк текста, отделенных от тела пустой строкой. Тело сообщения содержит данные, представленные в MIME формате, указанном в заголовке.
Сервер не изменяет тело документа, что означает, что сервер передает сформированный CGI программой ответ "как он есть".T
19.14. Специальные строки заголовка
Сервер распознает следующие строки заголовка в выходном потоке:
Content-Type:
Указывает на MIME тип тела сообщения. Значение этого параметра должно быть в формате type/subtype.
URI: <value> (value enclosed in angle brackets)
Данное значение указывает на полный URL или ссылку на локальный файл, сообщение из которого будет возвращено клиенту в теле сообщения. Если значение является локальным файлом, сервер отсылает его как результат запроса, как будто клиент воспольхзовался методом GET при генерации запроса. Если значение является полным URL, то сервер возвращает сообщение "401 redirect" для обеспечения прямой загрузки указанного объекта.
Location:
То же самое, что и URI, но данная форма сейчас не используется. Параметр value НЕ должен быть взят в угловые скобки.
19.15. Другие заголовки
Другие заголовки передаются клиенту в том виде, в котором они представлены
19.16. Прямой возврат
Сервер позволяет конечному приложению осуществлять прямой возврат результата запроса клиенту. Это осуществляется посредством включение в заголовок возвращаемого сообщения его информационного протокола. Это позволяет CGI программам формировать непосредственный ответ клиенту с указанием HTTP заголовка без предварительной обработки его сервером..
Сервер анализирует результат запроса, помещаемиый CGI программой в выходной файл (Output File), и, если первая строка "HTTP/1.0", он предполагает, что сообщение содержит полный HTTP ответ и отсылает его клиенту без упаковки