Page 198 - 4785
P. 198
сценарію. Роздільником між URL і рядком параметрів є
символ "?".
- якщо атрибут method має значення "POST", рядок
параметрів передається в тілі HTTP-запиту.
Розглянемо, як повинен вести себе CGI-сценарій, щоб
правильно обробити дані в залежності від методу, використаного
при передачі даних, рядок параметрів доставляється CGI-сценарієм
різними способами.
Якщо атрибут METHOD дескриптора <FORM> мав значення
"GET", рядок параметр передається серверу як значення змінної
оточення QUERY_STRING.
При використанні методу POST дані доставляються
сценарієм по-іншому. Вони передаються через стандартний потік
вводу (STDIN). Щоб сценарій зміг визначити, скільки символів слід
читати зі стандартного вводу, веб-сервер встановлює значення
змінної оточення CONTENT_LENGTH, рівним довжині рядка
параметрів.
Отримавши управління, сценарій в першу чергу повинен
з'ясувати, за допомогою якого методу виконувалася передача
параметрів. Ця інформація міститься в змінній оточення
REQUEST_METHOD.
Таким чином, в простому випадку, щоб виконати обробку
рядка параметрів, достатньо знати призначення трьох змінних
оточення: REQUEST_METHOD, QUERY_STRING і
CONTENT_LENGTH.
Приклад сценарію на мові Perl, який повертає клієнту рядок
параметрів, наведено нижче. Сценарій визначає, який метод
використовувався для передачі даних, читає рядок параметрів і
передає її клієнту, попередньо доповнивши HTML-дескрипторами.
$method = $ENV{'REQUEST_METHOD'};
if ($method eq "GET")
{ $pars = $ENV{'QUERY_STRING'}; }
else
{ $length =$ENV{'CONTENT_LENGTH'}; }
196