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
   193   194   195   196   197   198   199   200   201   202   203