Язык структурной разметки гипертекста HTML. Захаркина В.В. - 33 стр.

UptoLike

Составители: 

64
при работе на стороне клиента необходимо задавать имя формы
name, чтобы иметь возможность обращаться к элементам формы
из сценария JavaScript;
отправка данных формы на сервер требует, как минимум, указания
атрибута
action, определяющего серверный сценарий обработки.
Смысл, по крайней мере, двух атрибутов необходимо пояснить более
подробно.
Атрибут method
Атрибут method имеет два основных возможных значения: get (по
умолчанию) и post.
Смысл этих значений следующий. При передаче данных методом get
данные формы отправляются на сервер в заголовке запроса, а при
использовании метода postв теле запроса. Передача текстовых
данных может осуществляться любым из этих методов. А вот
бинарные данные могут быть
отправлены только методом post. Это
происходит в случае загрузки файла не сервер (всем понятный пример
приложение к электронному письму). Кстати, в этом случае
необходимо указать enctype=”multipart/form-data” (см.
далее примечения к атрибуту
enctype).
Итак, за исключением случая передачи бинарных данных (только
методом post) равным образом можно применять оба возможных
метода. На сложность разработки серверного сценария,
принимающего данные из формы, это никоим образом не влияет.
Какой же метод предпочтителен? Предлагаю два подхода для решения
этого вопроса. Во-первых, имеет смысл внимательно рассмотреть
имеющиеся в
сети ресурсы, убедиться, что в подавляющем
большинстве случаев применяется метод get, и считать это
негласным эмпирическим правилом. С другой стороны, можно
задуматься, какой вариант удобнее пользователю информационного
ресурса.
65
При передаче методом get пользователь имеет удовольствие видеть
данные формы в адресной строке. Символы, отличные от стандартной
латиницы кодируются. Например, пробелу соответствует код %20 .
Каждый из нас постоянно наблюдает такую ситуацию, работая с
поисковыми системами. Зададим, например в Яndex ключевое
словосочетание «язык HTML» и увидим в адресной строке:
Слово «язык» закодировано последовательностью %FF%E7%FB%EA,
а «HTML» передается как есть. Получив такой запрос,
соответствующая серверная программа обратится к базе данных и, в
конечном счете, сгенерирует и отправит браузеру список результатов
поиска.
При передаче методом post данные формы отправляются на сервер.
При этом пользователь не видит в адресной строке ничего «лишнего».
Зато появляются
другие проблемы: попытка обновить страницу
вызывает маловразумительное сообщение: «… обновление страницы
невозможно без повторной отправки данных…».
Резюме. По-видимому, следует выбирать заданный по умолчанию
метод get во всех случаях, кроме передачи на сервер бинарных
данных.
Атрибут enctype
Этот атрибут имеет два возможных значения:
application/x-www-form-urlencoded (по умолчанию)
multipart/form-data
Первое значение используется в абсолютном большинстве случаев.
Нет смысла указывать его явнооно и так предполагается по
умолчанию. Второй же тип кодировки (multipart/form-data)
указывается в единственном случае: при загрузке на сервер бинарного
файла. При этом обязательно задание атрибута method=”post”
.