Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТВЕТЫ МИР.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
546.82 Кб
Скачать

12. Передача данных форм. Кодирование в url.

Передача данных форм.

Существует несколько методов:

  1. Query – String – строка запроса;

  2. Path – Info – информационные пути;

  3. GET;

  4. POST;

Query – String и Path – Info помещают данные в URL за именем CGI программы. GET и POST указываются непосредственно в файле html как атрибут тэга форм

<form method = POST>.

QueryString – простой метод передачи данных скрипту. Если к URL добавить ? , то все символы после него будут переданы в скрипт без формы. Если в форме указывается метод GET, то все данные из формы будут преобразованы в Query – String и будут передаваться скриптом.

Недостатки Query – String и GET:

  1. ограничение на длину (256 символов);

  2. URL, включая Query – String, попадает в журнальные файлы доступа, которые ведут большинство серверов. В них фиксируется запрос к серверу и ответ сервера.

Кодирование в URL.

Прежде чем запустить скрипт, мы заполняем форму HTML. Данные формы состоят из отдельных элементов, каждый из которых имеет имя и значение. Элементы формы – поля ввода, списки, выключатели, переключатели.

Браузер упаковывает данные формы, используя следующие правила:

  1. все передаваемые данные из формы объединяются в одну строку парами вида name=value, разделитель пар - &. Получается пара на каждый элемент формы.

name1=value1 & name2=value2 & …

  1. любые пробелы, встречающиеся в имени или значении, заменяются знаком + (URL не может содержать пробелов);

  2. все другие знаки (=, &), которые встречаются в имени или значении, заменяются на $ ? за которым следует двух цифровой 16-ричный код ASCII данного символа.

PathInfo следует за именем скрипта. Path – Info начинается с / , чтобы WEB – сервер знал, где заканчивается имя скрипта.

http//host/dir1/text.exe/1.txt, где

http//host/dir1/text.exe/ - это имя скрипта;

1.txt - Path – Info.

Path – Info содержит некоторый логический путь к какому-либо файлу. Можно одновременно передать Path – Info и Query – String, но и нужно помнить, что Path – Info передается первым, а затем Query – String, иначе оно поглотит Path – Info.

http//host/dir1/text.exe/1.txt? 123

PathInfo имеет те же недостатки, что и QueryString:

  1. ограничение на длину;

  2. запись в журнальных файлах доступа сервера;

  3. не кодируется автоматически в URL как Query – String.

13. Стандартный ввод и метод Post.

В связи с вышеописанными недостатками был создан метод Post. Он посылает данные через стандартный поток ввода STPIN. Метод Post не общедоступный, т.е. данные не сообщаются при регистрации на сервере, нет ограничения на длину передаваемых данных.

Однако методом Post нельзя непосредственно передать данные в скрипт, как это делает Query – String.

Если скрипт запускается вручную, то STDIN – интерактивный ввод с клавиатуры или из содержимого файла читает данные скрипт до тех пор, пока не встретит символ конца файла.

WEB – серверы по Windows не имеют концепции STDIN, поэтому они помещают данные в файл, который перенаправляют скрипту (WEBSite). Метод Post требует количество байтов данных формы, которые надо переслать. Браузер автоматически считывает это количество байтов данных и помещают это значение в переменную Content_Length.