Ші дріс. Программалы осымшаларды зара атынасыны апаратты интерфейсін орындау.

Сервер мен сырты программаны зара атынас интерфейсі. Сервер мен сырты программаны зара атынас интерфейсіні (Common Gateway Interface) орындалуын арастырайы.

Common Gateway Interface (CGI) ортасыны айнымалысы.

Сервер CGI-скрипті (сырты программаны) олданыса жіберген уаытта оршаан ортаны алыптастырады. Онда скрипт HTTP-байланыстар жайында рсат етілген барлы апаратты, оан оса сраныммен алынан шамаларды анытай алады. Кптеген CGI айнымалылар стандартталан. Ендігі жерде стандартты CGI ортаны айнымалыларын арастырайы:

REQUEST_METHOD – HTTP сранысты дісін анытауа арналан басты жолдарды бірі. Жоарыда айтылып ткендей серверге сраныс жіберу шін HTTP протоколы GET жне POST дістерін пайдаланады. Оларды айырмашылыы, GET дісінде, сраныс URL-ді бір блігі болып табылады (мысалы, http://www.localhost/myscript.cgi?а=request), ал POST дісін олдананда деректер HTTP-шаырылу денесінде жіберіледі (GET дісінде шаырылу денесі бос болады). Сйкесінше, CGI шін: GET дісінде шаырылу QUERY_STRING айнымалысына барады, ал POST дісінде скрипті стандартты трде енгізетін STDIN-ге жіберіледі.

Мысалы: REQUEST_METHOD=GET

QUERY_STRING– GET дісіндегі шаырылу жолы. Формадан жіберілетін шаырылу броузермен кодталады, себебі URL-де барлы символдар олдана бермейді (оларды кейбірлері арнайы олданады). Urlencode дісі бойынша: URL-дегі барлы бос орын белгілері “+” табасына алмастырылады, ал барлы арнайы жне баспаа тспейтін табалар %hh тізбегіне ауыстырылады, мндаы hh-табаны он алтылы коды. Сонымен атар, жолдарды блуші болып & белгісі табылады, сондытан формаларды деген уаытта декодтау жргізу ажет.

Мысалы: QUERY_STRING=name=user+chef&age=20&hobby=games

CONTENT_LENGTH– байт бойынша алынан шаырылуды зындыы. POST дісі бойынша шаырылу жргізген кезде стандартты кіріс (STDIN) CONTENT_LENGTH жргізу керек, содан со оларды деу керек. детте POST дісімен лкен ауымдаы мтіндерді енгізетін формаларды жіберу тиімді. Осы дісті олдананда ешандай шектеу жо, ал GET дісінде URL зындыы шектеулі.

Мысалы: CONTENT_LENGTH=31

CONTENT_TYPE– шаырылу денесіні трі (жоарыда кодталан формаларды трі келесідей application/x-www-form-urlencoded аныталады).

GATEWAY_INTERFACE – CGI протоколыны нсасы

Мысал: GATEWAY_INTERFACE=CGI/1.1

REMOTE_ADDR –аталмыш шаырылуды орындайтын, ашытаы хосты ІР – мекен-жайы.

Мысалы: REMOTE_ADDR=139.142.24.157

REMOTE_HOST –бл, егер шаыран хосты домендік есімі болса, онда ол айнымалыны амтиды, арсы жадайда ол REMOTE_ADDRсияты ІР – мекен-жай.

Мысалы: REMOTE_HOST=idsoftware.com

SCRIPT_NAME– шаырылуда олданан скриптті есімі. Сервердегі наты жолды алу шін SCRIPT_FILENAMEайнымалысы олданады.

Мысалы: SCRIPT_NAME=/cgi/guestbook.cgi

SCRIPT_FILENAME –бл сервердегі файл скриптіні есімі. Осы айнымалыны олдана отырып, файла физикалы жолды табады.

Мысалы: SCRIPT_FILENAME=/home/public/cgi/guestbook.cgi

SERVER_NAME– серверді кп жадайда домендік есімі (www.microsoft.com сияты), алайда ол IP-мекен-жай болуы да ммкін (мысалы, 157.151.74.254 трдегі).

Мысалы: SERVER_NAME=www.tksite.edu

SERVER_PORT –серверді ТСР-порты, ол байланыс жасау шін пайдаланады. Келісім бойынша HTTP-портты нмірі 80, алайда кейбір жадайда ол баса болуы ммкін.

Мысалы: SERVER_PORT=80

SERVER_PROTOCOL –сервер протоколыны нсасы

Мысалы: SERVER_PROTOCOL=HTTP/1.1

SERVER_SOFTWARE– серверді программалы амтамасы

Мысалы: Apache/1.0

Клиент пен сервер арасындаы зара атынас жайлы негізгі апарат оршаан ортаны стандартты айнымалылары арылы алынады. CGI-сценариін іске осан сайын ол бірінші рет жмыс жасаандай кй кешеді. рбір рет инициализация процедурасы басынан бастап жзеге асады. Кіріс деректерді оудан брын оршаан орта айнымалысыны REQUEST_METHOD мнін анытау керек жне ол андай апарат амтиды get немесе post? Содан кейінгі рекеттер осы мнге байланысты згеріп отырады.

Кіріс деректерді деу наты бір жолды жазу масатына байланысты. Жалпы жадайда деректерді деу ол трлендіру деп саналады.