HTML-формы
Продолжим изучение основных терминов, понятий и концепций интернета. В этом материале мы узнаем, что такое HTML-формы - элементы, которые есть наверно на каждом сайте в интернете. В HTML формы - это области, разделенные тегом <form>, содержащие поля ввода текста, кнопки, флажки и другие функции графического пользовательского интерфейса. Формы используются веб-приложениями, чтобы пользователи могли предоставлять данные для отправки на сервер.
В форме элементы, с которыми пользователи могут взаимодействовать для предоставления данных, называются полями формы. Каждому полю формы в HTML присваивается имя, которое идентифицирует его для серверного приложения, но не видно пользователю. Например, на каждой странице у меня на блоге есть подобная форма:
Хотя различные элементы формы кажутся пользователю разными, все они передают информацию в серверное приложение в виде ряда пар имен и значений, разделенных символами&. Каждое имя - это имя поля формы, а значение - это данные, полученные в результате действий пользователя. Например, вот форма с двумя полями ввода текста, в которых пользователь может ввести имя и фамилию:
firstname=Мария&lastname=ЗайцеваДанные формы передаются на сервер одним из двух способов, в зависимости от того, какой метод (GET или POST) указан в теге <form>:
- При использовании метода GET данные формы передаются в строке запроса в URL-адресе.
- Когда метод POST, данные формы передаются в теле сообщения.
Кодировка символов (параметр набора символов), используемая HTTP-клиентами для данных форм (как для методов GET, так и для методов POST), определяется информацией в HTML-форме.
HTTP-клиент обычно отправляет данные форм с использованием той же кодировки символов, которая использовалась для HTML-формы, указанной либо параметром набора символов в заголовке типа содержимого, либо эквивалентным метатегом, встроенным в HTML; например:
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">Вы также можете использовать атрибут accept-charset в элементе HTML-ФОРМЫ, чтобы указать дополнительную допустимую кодировку символов. Если вы не указали кодовую страницу, браузер получает эту информацию из параметра набора символов. Кодировка символов HTML-формы обычно либо ISO-8859-1, либо UTF-8, но не ограничивается этими значениями.
Информация о кодировке символов обычно не присутствует как часть отправленного запроса формы. Таким образом, если набор символов по умолчанию для интернета (ISO-8859-1) не используется, приложение, считывающее форму, должно указать кодировку, используя ключевое слово CHARACTERSET. Если CHARACTERSET опущен, но HTTP-клиент предоставляет значение набора символов в заголовке типа содержимого (не стандартная практика для отправки HTML-форм), используется значение набора символов; в противном случае предполагается ISO-8859-1.
Данные формы обычно передаются с помощью экранированных специальных символов. Если форма определена с помощью метода GET, поскольку данные отправляются в виде строки запроса в URL-адресе, зарезервированные или исключенные символы всегда должны быть экранированы.
Если форма определена с помощью метода POST, данные отправляются в теле сообщения. Однако, как определено в спецификации HTML 2.0, тип кодировки по умолчанию для всех форм-application/x-www-form-urlencoded. (подробнее тут). Когда эта кодировка используется для формы с методом POST, хотя данные отправляются в теле сообщения, зарезервированные или исключенные символы экранируются, как если бы они были в URL-адресе.
Если для формы указан альтернативный тип кодировки составные/данные формы (что выполняется с помощью атрибута ENCTYPE в теге HTML <form>), необходимо экранировать символы, отличные от ASCII, в именах полей, но символы, отличные от ASCII, в значениях полей экранировать не нужно. Данные также представлены в ряде отдельных разделов в теле сообщения.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Читайте также:
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.