Мысалдар

GET әдісі

Press me.

<FORM ACTION="/cgi-bin/examples/forms.cgi" METHOD="GET"> <INPUT TYPE="checkbox" NAME="button" VALUE="on"> Press me. <INPUT TYPE="submit" VALUE="Submit"> </FORM>

POST әдісі

Press me.

Құжатта бұл форма келесі түрде жазылған: Құжатта бұл форма келесі түрде жазылған::

<FORM ACTION="/cgi-bin/examples/forms.cgi" METHOD="POST"> <INPUT TYPE="checkbox" NAME="button" VALUE="on"> Press me. <INPUT TYPE="submit" VALUE="Submit"> </FORM>

Ал осы орындалған скрипттің әрқайсысы келесі түрде көрінеді:

#!/bin/sh echo Content-type: text/html echo echo "<b>Сіз жөнелттіңіз (POST әдісі үшін):</b><br>" echo "<h2>" cat echo "<br>" set | grep CONTENT_LENGTH echo "</h2><hr>" echo "<b>Environment</b><br><pre>" set echo "</pre>"

Скриптердің сақталатын орны

CGI стандарты бойынша алдын ала скриптердің сақталатын орны, яғни каталог немесе диск анықталмайды. Әдетте Web-сервер скриптерді сервер программасының катлогындағы /CGI-BIN каталогынан іздейді.

CGI-скриптер файлдарының типтері

Windows-жүйелеріне арналған HTTP серверлері әдетте CGI-файлдары үшін EXE немесе PL тіркеулерін қолданады. Мысалы егер CGI-программа (скрипт), С программалау тілінде құрылса, онда скрипт-файлдардың типі ЕХЕ болады. Егер скрипт Perl тілінің көмегімен құрылса, онда файлдың типі PL болады.

Бірақ бірқатар серверлер скриптер үшін CGI тіркеуін қолдайды. Сервердің қандай тіркеуді қолдайтынын Web-шеберден анықтап алған абзал.

AUTH_TYPE айнымалылар қоршауы

CGI скриптілері AUTH_TYPE айнымалылар қоршауын скриптіге қатынас құратын пайдаланушыларды идентификациялау үшін қолданады. Егер сервер пайдаланушыны идентификациялауға ыңғайланған болса, онда скриптпен қатынас құру үшін әр пайдаланушы өз аты мен құпия сөзін енгізуі керек. Мысалы, айнымалының келесі мәні пайдаланушыдан идентификацияның негізгі деңгейінен өтуін талап ететіндігін білдіреді:

AUTH_TYPE = Basic

CONTENT_LENGTH айнымалысы

Скрипттер CONTENT_LENGTH айнымалылар қоршауын байланыстырылған мәліметтерде дәл қанша байт бар екендігін анықтау үшін қолданады. Мысалы, егер сұраныс ұзындығы 1,024 байттан тұратын мәлімет болса, онда айнымалыға келесі мән меншіктеледі:

CONTENT_LENGTH = 1024

CONTENT_TYPE айнымалысы

Скрипттер бұл айнымалылар қоршауын байланыстырылған ақпараттардан тұратын сұраныстар үшін қолданады. Мұндай сұраныстар типіне POST HTTP-операциясы жатады. Айнымалының мәні байланыстырылған ақпараттың типін көрсетеді (MIME-тип. ішкі тип). Мысалы, егер сұраныс HTML типіндегі құжатпен байланыстырылған болса, онда айнымалылар қоршауының мәні:

CONTENT_TYPE = text/html

GATEWAY_INTERFACE айнымалысы

Скрипттер бұл айнымалыны Web-сервер-ді қанағаттандыратын CGI спецификасының нұсқасын анықтау үшін қолданады. Спецификаның шығу нөмірінің форматы: CGI/нұсқасы. Мысалы, CGI-дің 1.1 нұсқасы үшін айнымалының мәні:

GATEWAY_INTERFACE = CGI/1.1

PATH_INFO айнымалысы

Скрипттер бұл айнымалыны клиентті қамтамасыз ететін қосымша жолдарды анықтау мақсатында қолданады. Басқаша айтқанда, сервер скрипт үшін виртуалды жолды қолдана алады. Серверлік программа бұл қосымша ақпаратты декодтауы тиіс. Әдетте бұл қосымша ақпарат сұраныс сәтті орындалған жағдайда ресурсты көрсетеді

Жол сервердің түпкі каталогын негізге алып салыстырмалы формада жазылады. Мысалы, егер c:/cgi-bin/example1.exe/sports.html жолы берілсе, онда айнымалы мәні:

PATH_INFO = /sports.html

PATH_TRANSLATED айнымалысы

Скрипттер бұл айнымалыны тікелей қолдануға қажетті жолға қатысты ақырғы ақпаратты алу үшін қолданады. Сервер қажетті ақпаратты айнымалыға жолдың қажетті түрлендірулерін орындай отырып аударады.Мысалы, егер PATH_TRANSLATED айнымалысының мәні /sports.html, болса, сервердің түпкі каталогы C: болады, онда айнымалының мәні:

PATH_TRANSLATED = c:sports.html

QUERY_STIRNG айнымалысы

Скрипттер бұл айнымалыны пайдаланушыдан скриптке өңдеу үшін жіберілген URL ден кейін сұрау белгісінің оң жағындағы, ақпараттарды мәтіндік формада (аргументтерден тұратын) алу үшін қолданады. Бұл мәтіндік қатар скриптке кіруден тұрады. Ары қарай сервер бұл мәтіндегі әрбір бос орынды " + " таңбасына, ал барлық басылмайтын символдарды " %dd" таңбасымен алмастырады, мұндағы d ондық санау жүйесінің базасы болып табылады.

Скрипт осы мәтіндік қатарды талдай алатын кодтан тұруы тиіс. Сервер, бұл ақпаратты скриптке жібере отырып, қайта декодтауды орындамауы қажет. Сонымен қатар пайдаланушы сұраныстың кез келген ақпаратын қамтамасыз еткен жағдайда сервер QUERY_STRING айнымалысын орнатуы керек. Мысалы, http://www.jamsa.com/cgi-bin/grandma.exe?name=margaret+alarcon URL-і үшін айнымалының мәні келесі шамаға тең болады:

QUERY_STRING = name=margaret+alarcon

REMOTE_ADDR айнымалысы

Скрипттер бұл айнымалыны сұраныс құратын, қашықтағы браузердің IP-адресін алу үшін қолданады. Мысалы, айнымалының мәні келесі түрде болуы мүмкін:

REMOTE_ADDR = 204.212.52.209

Бақылау сұрақтары:

1. CGI сөзі қалай талданады? Нені білдіреді?

2. HTTP хаттамасы бойынша жұмыс қалай жүргізіледі?

3. HTTP хаттамасы бойынша жауап форматы қандай болады?

4. CGI қосымшаларын таратуға жататындар тізімін анықтаңыз.

5. CGI-дің мәліметтерді жіберетін қандай тәсілдері бар?

6. CGI кіріс мәліметтерді қайдан алады?

7. Стандартты енгізу ағыны деген не?

8. Айнымалылар қоршауы деген не?

9. Стандартты шығару ағыны деген не?

10. CGI өз жұмысының нәтижесін қайда жібереді?

11. Серверде жіберілген параметрлер қандай айнымалыға меншіктеледі?

12. Параметрлерді жіберудің қандай тәсілдері бар?

13. Скриптер қайда сақталады?

14. CGI-файлдарының тіркеулері қандай болады?


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: