Введение
Вводные поля на веб-странице. Веб-форма, веб-форма или HTML-форма на веб-странице позволяет пользователю вводить данные, которые отправляются на сервер для обработки. Формы могут быть похожи на бумажные или формы баз данных, поскольку веб-пользователи заполняют их, используя флажки, переключатели или текстовые поля. Например, формы могут использоваться для ввода данных о доставке или кредитной карты для заказа товара, или для получения результатов поиска в поисковой системе.
A webform, web form or HTML form on a web page allows a user to enter data that is sent to a server for processing. Forms can resemble paper or database forms because web users fill out the forms using checkboxes, radio buttons, or text fields. For example, forms can be used to enter shipping or credit card data to order a product, or can be used to retrieve search results from a search engine.
Описание
Формы заключаются в HTML-элемент `<form>`. Этот HTML-элемент определяет адрес, по которому должны быть отправлены данные, введенные в форму, а также метод отправки данных – GET или POST.
Подача
Когда данные, введенные в HTML-формы, отправляются, имена и значения элементов формы кодируются и отправляются на сервер в HTTP-запросе с использованием методов GET или POST. Исторически также использовался транспорт электронной почты. Тип MIME по умолчанию (тип интернет-медиа) application/x-www-form-urlencoded основан на очень ранней версии общих правил процентного кодирования URI, с рядом модификаций, таких как нормализация символов новой строки и замена пробелов знаком "+" вместо "%20". Также доступна другая возможная кодировка – multipart/form-data, которая часто используется для отправки файлов методом POST.
Использование с языками программирования
Формы обычно используются вместе с программами, написанными на различных языках программирования, чтобы разработчики могли создавать динамические веб-сайты. Наиболее популярные языки включают в себя языки клиентской и/или серверной стороны. Хотя для обработки данных формы на сервере можно использовать любой язык программирования, наиболее часто применяются скриптовые языки, которые, как правило, обладают более развитыми возможностями работы со строками, чем языки программирования, такие как C, а также имеют автоматическое управление памятью, что помогает предотвратить атаки, связанные с переполнением буфера.
Клиентская сторона
Фактически, JavaScript является основным языком скриптов на стороне клиента для веб-сайтов. Использование JavaScript с Document Object Model (DOM) позволяет применять метод Dynamic HTML, который обеспечивает динамическое создание и изменение веб-страницы непосредственно в браузере. Несмотря на ограниченные возможности языков клиентской стороны при работе с формами, они часто используются для предварительной проверки данных формы и/или подготовки этих данных к отправке на сервер. Однако эта практика постепенно заменяется новыми типами полей ввода и атрибутом `required` в HTML5.
Исполнение на стороне сервера
Код на стороне сервера может выполнять огромное количество задач для создания динамических веб-сайтов, которые по техническим или соображениям безопасности не может выполнить код на стороне клиента — от аутентификации пользователя до извлечения и хранения данных в базе данных, проверки орфографии и отправки электронной почты. Значительным преимуществом серверной обработки перед клиентской является концентрация функциональности на сервере, а не зависимость от различных веб-браузеров в реализации различных функций единообразным и стандартизированным образом. Кроме того, обработка форм на сервере часто повышает безопасность, если серверная обработка не предполагает доверия данным, предоставленным клиентом, и включает такие методы, как санитаризация HTML. Недостатком серверного кода является масштабируемость: серверная обработка для всех пользователей происходит на сервере, в то время как клиентская обработка выполняется на отдельных компьютерах пользователей.
Перевод на другие языки
Некоторые из интерпретируемых языков программирования, часто используемых для создания интерактивных форм в веб-разработке, включают PHP, Python, Ruby, Perl, JSP и Adobe ColdFusion, а также некоторые компилируемые языки, такие как Java и C# с ASP.NET.
Скрипты для отправки форм на электронную почту
Среди самых простых и востребованных типов серверных скриптов – те, которые просто отправляют по электронной почте содержимое отправленной формы. Однако этот тип скриптов часто эксплуатируется спамерами, и многие из наиболее популярных скриптов для отправки формы по электронной почте уязвимы к перехвату с целью рассылки спама. Одним из самых популярных скриптов такого типа был "FormMail.pl" из архива скриптов Мэтта. Сегодня этот скрипт больше не используется в новых разработках из-за отсутствия обновлений, проблем с безопасностью и сложности настройки.
Формоводы
Некоторые компании предлагают формы как размещаемый сервис. Обычно эти компании предоставляют визуальный редактор, инструменты для создания отчетов и инфраструктуру для создания и хостинга форм, которые можно встраивать на веб-страницы. Веб-хостинговые компании предоставляют шаблоны своим клиентам как дополнительную услугу. Другие сервисы хостинга форм предлагают бесплатные контактные формы, которые пользователь может установить на свой веб-сайт, просто вставив код сервиса в HTML-код сайта.
История
HTML-формы были впервые реализованы в браузере Viola.