Приветствую Вас, Гость

Обработка HTML-форм

Самое сложное в понимании процесса обработки HTML-форм состоит в том,чтобы понять "что где происходит". При просмотре посетителем Web-страницы, не содержащей формы, сервер просто отвечает на запросы браузера о передачеWeb-страницы и таких отдельных ее элементов, как графика и анимация. Например, при "посещении" Web-сайта браузер посетителя запрашивает Web-страницу у сервера. После передачи HTML-страницы сервером браузер обрабатываетHTML-операторы и начинает выводить содержимое страницы на экран. Если при обработке страницы браузер встретит дескриптор, требующий получения от сервера дополнительных данных, например, дескриптор <img>, который исполь-зуется для описания графики, браузер посылает серверу запрос на передачу требуемого файла. Как показано на рис. 3.2, сервер и браузер продолжают это взаимодействие типа "запрос/ответ" до тех пор, пока браузер не получит все файлы,необходимые для корректного отображения всего содержимого Web-страницы.
После отправки HTML-документа (включая все запрошенные браузером графические изображения, анимацию, звуковые файлы и видеоклипы) работа Web-сервера считается выполненной. Вывод на экран содержащегося на Web-странице текста и графики, воспроизведение звуковых файлов и видеоклипов возлагается на браузер. При щелчке пользователем на гиперссылке, находящейся на Web-странице, браузер отправляет серверу следующий запрос на передачу другой Web-страницы. В свою очередь, сервер отправляет браузеру запрошенный документ (и все дополнительные файлы, необходимые для правильного отображения документа). 
При работе с Web-страницей, содержащей форму, браузер и сервер для загрузки страницы (с формой) выполняют все те же операции, которые были описаны выше. После заполнения посетителем полей формы и нажатия кнопки отправки браузер отправляет результаты формы серверу, который должен определенным образом обработать полученные результаты. Как правило, результаты формы обрабатываются сервером за счет запуска того или иного сценария. В зависимости от назначения, сценарий может, например, записать данные пользователя в базу данных, использовать их для начала транзакции или, в случае, если сайт представляет собой такую поисковую машину, как Yahoo, использовать данные пользователя для поиска ссылок в базе данных сервера. Как будет описано ниже,с помощью HTML-элементов формы ее разработчик может указать программу, которая будет запускаться сервером после передачи результатов формы.

1) Запрос браузера пользователя к Web-серверу на предмет передачи HTML-страниц
2) Web-сервер передает запрошенную HTML-страницу браузеру пользователя
3) Браузер пользователя дополнительно запрашивает Web-сервер для передачи графики или данных
4) Web-сервер передает браузеру пользователя запрошенные данные
5) Браузер пользователя выводит HTML-страницу на экран

Рис. 3.2. Взаимодействие типа "запрос/ответ"между Web-браузером и Web-сервером

Как правило, при нажатии посетителем кнопки передачи (Submit) браузер запустит сценарий, который находится в том же HTML-файле, что и форма. Этот сценарий проверяет полноту введенных посетителем данных и в некоторых случаях может проверять их "правильность". Затем браузер упакует информацию и передаст ее Web-серверу, указывает при этом имя приложения, которое сервер должен запустить для обработки результатов формы. На рис. 3.3 показана схема распределения обязанностей между Web-браузером и Web-сервером при обработке результатов форм.
Опять-таки, как и ранее, после передачи страницы формы браузеру Web-сервер занимается своими делами, как это было и с Web-страницей, не содержащей формы. Web-браузер отвечает за прием данных от посетителя в поля формы, выбор с помощью мыши переключателей, флажков и элементов в списках выбора. После завершения заполнения формы Web-браузер должен снова связаться с сервером с целью передачи ему введенной информации для последующей обработки. В свою очередь, Web-сервер для обработки полученных результатов формы запускает определенный сценарий и передает браузеру сообщение, подтверждающее получение результатов и во многих случаях указывающее об успешной или неудачной обработке данных.

1) Web-сервер передает форму Web-браузеру посетителя
2) Web-браузер выводит форму на экран, а посетитель заполняет поля формы
3) Посетитель нажимает кнопку отправки Submit для передачи введенных данных Web-серверу
4) Web-сервер передает данные формы (называемые результатами формы) для обработки CGI-сценарию
5) CGI-сценарий, обрабатывающий результаты формы, может переформатировать данные и передать для
дальнейшей обработки специальной программе
6) CGI-сценарий создает подтверждающее сообщение и передает его Web-серверу
7) Web-сервер передает подтверждающее сообщение Web-браузеру посетителя, который выводит его на экран

Рис. 3.3. События обработки HTML-формы и места, где они происходят