"Дмитрий Леонов. Использование Perl в интернет-технологиях" - читать интересную книгу автора

/form>

Что приведет к отображению в броузере следующей страницы:

Рис. 4. Пример страницы с формой для взаимодействия с пользователем

Самый распространенный тег, используемый в формах - input>. В его
параметре type указывается тип поля ввода:
submit/text/password/checkbox/radio/hidden, соответствующий кнопкам, простым
текстовым полям ввода, полям ввода пароля, селекторным кнопкам, спрятанным
полям.
В обязательном параметре name указывается имя поля ввода, в поле value
можно задать его стартовое значение.
Списки и выпадающие списки создаются с помощью тегов select>/select>,
описывающих характеристики всего списка, и тегов option>, описывающих
отдельные элементы списков.
В каждой форме должна присутствовать одна кнопка Submit, при нажатии
которой формируется http-запрос, включающий результаты заполнения формы, и
этот запрос направляется на вход приложения, указанного в параметре action.
Первым механизмом, обеспечивающим взаимодействие клиента с серверными
приложениями, стал CGI (Common Gateway Interface, общий шлюзовой интерфейс).
В ответ на действия пользователя, используя CGI, Web-сервер вызывает внешнюю
программу (CGI-приложение) и передает ей информацию, полученную от клиента
(например, переданную Web-браузером). Далее CGI-приложение обрабатывает
полученную информацию, и результаты ее работы передаются клиенту.
Рассмотрим эти этапы чуть подробнее. Взаимодействие между клиентом и
серверным приложением осуществляется по схеме, представленной на рис.1.



Рис. 1. Схема взаимодействия браузера, www-сервера и cgi-приложения

Пользователь заполняет экранную форму, описанную в html-файле с помощью
тега form>, и нажимает на кнопку "Submit". Возможен также запрос при
непосредственном использовании адреса CGI-приложения - указывая его в
строке Location браузера, в тэге img> с помощью средств включения сервера
(SSI) и т. д.
На основе информации из формы браузер формирует HTTP-запрос и
отправляет его серверу. Информация приводится к виду
param1=value1param2=value2...paramN=valueN, где parami - имя
соответствующего поля ввода, valuei - введенное в него значение. Все
символы, за исключением букв латинского алфавита, цифр, символа
подчеркивания, дефиса и точки при этом передаются в закодированном виде %XX,
где XX - шестнадцатеричное представление данного символа. Символ пробела
может быть заменен символом "+". Если указано, что при передаче должен
использоваться метод GET, эта строка передается непосредственно в URL
(например,
u>http://www.somehost.com/cgi-bin/script.cgi?param1=value1param2=value2/u>).
При использовании метода POST через заголовок передается информация о типе
содержимого запроса (для форм это, как правило,