Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Перед передачей на сервер набор данных формы кодируется в соответствии со значением атрибута ENCTYPE элемента FORM, который определяет тип содержимого, соответствующий пересылаемым данным. Клиентские браузеры должны поддерживать перечисленные в следующем разделе типы содержимого, в противном случае их поведение в процессе обработки формы будет непредсказуемо.
Tuп содержимого "application/x-www-form-urlencoded"
Этот тип содержимого используется по умолчанию. Набор данных формы, кодируемый согласно данному типу содержимого, составляется следующим образом.
• Из формы извлекаются имена и значения элементов управления, после чего символы пробелов заменяются символами +. Символы, не являющиеся буквами или цифрами, заменяются кодом %НН, где за знаком процента следуют шестнадцатеричные цифры, представляющие код ASCII этого символа. Разрывы строк представляются парами CRLF (т.е. значением %OD%OA).
• Пары имя/значение элементов управления перечисляются согласно их позиции в тексте документа. Имя отделяется от значения с помощью символа =, а пары имя/значение отделяются друг от друга символом &.
Рассмотрим, например, следующую форму.
Подтверждение этой формы с введенным именем подписчика Ivan Petrov и адресом электронной почты [email protected] приведет к отправке такого набора данных формы:
firstname=lvan&lastname=Petrov&postal-
[email protected]&subscribe=on
Tun содержимого "multipart/form-data"
Тип содержимого "application/x-www-form-urlencoded" неэффективен для отправки большого количества двоичных данных или текста, содержащего символы, не входящие в набор ASCII. Для отправки набора данных формы, содержащего файлы или данные с символами, не входящими в набор ASCII, или двоичные данные, больше подходит тип содержимого "multipart/form-data".
Сообщение с типом содержимого "multipart/form-data" состоит из нескольких частей, каждая их которых представляет успешный элемент управления. Эти части пересылаются в программу обработки формы в том порядке, в котором соответствующие им элементы управления представлены в документе HTML. Каждая часть может содержать необязательный заголовок "Content-Type", значение которого по умолчанию равно "text/plain". Кроме этого, каждая часть должна содержать следующие компоненты.
• Заголовок "Content-Disposition", имеющий значение "form-data".
• Атрибут имени соответствующего элемента управления.
Например, для элемента управления с именем "control-name" соответствующая часть набора данных формы может выглядеть так:
Content-Disposition: form-data; name="control-name"
Если в наборе данных формы передаются данные, хранимые в файле, для этих данных должен быть определен тип содержимого (например, "application/octet-stream"). Если с помощью одного элемента формы было выбрано несколько файлов, они должны пересылаться с указанием типа содержимого "multipart/mixed".
В следующем примере показан результат кодирования согласно типу содержимого "multipart/form-data". Предположим, у нас имеется следующая форма.
Если пользователь введет в текстовое поле слово " Ivanov " и выберет текстовый файл " content.txt ", то после подтверждения формы браузер отправляет следующий набор данных формы.
Здесь использован обязательный параметр boundary, задающий строку, разделяющую части передаваемых данных. Если пользователь выбрал второй файл с изображением " logo.gif ", то клиентский браузер отправляет следующие части набора данных формы.
Итак, мы уже знаем, как следует подготавливать набор данных формы, предназначенный для передачи программе-сценарию для их обработки. Рассмотрим, как это происходит.
Дата публикования: 2014-11-04; Прочитано: 250 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!