CGI програмиране от самото начало получаване на параметри с CGI скрипт (gi) бюлетин
Както обещах, в този брой ще разгледаме получаването на информация с CGI скрипт.
Каква информация могат да получат CGI скриптовете?
Според стандарта CGI за прехвърляне на информация към скрипта се използват променливите на околната среда (наричани още „променливи на околната среда“) от стартирането на скрипта, а понякога и „стандартният вход“ на скрипта: ако HTTP методът, избран от клиента към стартирайте скрипта предвижда наличието на HTTP заявка "тяло", след което съдържанието на това тяло на заявката се предава на скрипта при стандартно въвеждане. Останалата информация се предава чрез променливи на околната среда.
Променливите на околната среда са достъпни за скрипта Perl като "стандартен" хеш % ENV.
За да видите кои променливи на средата вашият уеб сървър предава на скрипта, можете да стартирате специален скрипт върху него, който просто чете всичките си променливи на средата и ви ги издава в браузъра:
Както ще видите, много информация се предава на скрипта с помощта на променливи на средата.
По едно време събрах „до купчината“ и систематизирах променливите на средата на CGI в един вид справочна статия, която можете да намерите тук. Има и описание на променливите на средата на CGI, "специфични" за сървъра Apache (който е най-често срещан в WWW) и за скриптове, извикани чрез SSI.
Предаване на параметрите на повикванията към скрипта
Засега нека разгледаме как параметрите на повикванията се предават на скрипта.
В по-голямата част от случаите един от двата HTTP метода - GET или POST - се използва за извикване на CGI скриптове. В зависимост от метода на обаждането параметрите на заявката се предават от уеб сървъра на скрипта по различни начини.
Методът за извикване на скрипт се предава на CGI скрипта в променлива на среда ЗАЯВКА_МЕТОД. Нека разгледаме по-отблизо тези методи, предимствата и недостатъците на всеки от тях.
GET метод - това е "обичайният" метод, който се използва най-често. Този метод изисква всеки уеб ресурс от сървъра. Когато използвате този метод, браузърът предава параметри (ако е необходимо) в самия URL адрес на скрипта след „?'.
По този начин, когато скриптът се извика с този метод, параметрите, предадени на скрипта, всъщност са част от URL адреса.
Това води както до предимствата, така и до недостатъците на този метод за извикване на скрипт. Основното предимство на този метод е, че заявка за скрипт може да бъде направена не само от HTML форми (ще говорим за тях подробно в следващата версия), но и по всякакъв друг начин - например директна връзка или друг начин за искане на URL. Например, в случай на графичен брояч на посетители (който се извиква от уеб страница чрез ) може да се предадат някои параметри директно в неговия URL:
Основният недостатък на този метод е, че максималната дължина на URL адреса е ограничена, поради което този метод може да предава много ограничено количество информация. Точната стойност за максималната дължина на URL адреса зависи както от вашия конкретен уеб сървър, така и от вашия конкретен браузър. Спецификацията HTML 4.0 не препоръчва използването на метода GET, ако общата дължина на низа на параметъра може да надвишава 100 знака.
Друг недостатък е, че не всички символи могат да бъдат предадени в URL низа.