Ертханалық жұмыс № 25-26
Тақырыбы:Достық пайдаланушы интерфейсі
Жұмыстың мақсаты:Достық пайдаланушы интерфейсімен танысу
Бұл жұмысты WEB – бағдарламалау тобының бағдарламалық құралының арнайы мүмкіндіктері қолданылады, мысалы JAVA – script немесе VB – script. Бағдарламалық жүйенің пайдаланушы іс әрекетіне редакция ретінде көрсетілетін, «оқиға» мүмкіндіктері қолданылады. «Оқиғалар» дұрыс қолданылса пайдаланушыға тиімді көмек көрсете алады, мысалы: деректерді егізуде, тасымалдауда, білмегенді толықтыру сияқты көмектер береді.
Тапсырма: пайдаланушыға көмек беретін элеметтері бар WUI құруға дағдылану.
Бұл жұмыста интерактивті құру қажет. Оның жұмыс қабілеттерін HTTP сервері арқылы жергілікті компьютерде пайдалану арқылы тексеру ұсынылады. Сұраныстар серверлік CGI – сценарийімен PERL тілінде script бағдарлама түрінде өңделеді. PERL – бағдарлама, HTTP – серверіндегі арнайы бумаға салынады. Жұмысты орындаудағы ең кіші нұсқасы, белгілі бір мағынасы бар сайт түрінде және скрипт тілінде орындалған «достық интерфейсті» клиент жағында пайдалану арқылы жүргізу болып табылады.
Жобаны дұрыстау үшін «тұзақ» - (loop bask) технологиясы, бір компьютерде орналасқан броузер мен пайдаланады.
Бақылау сұрақтары:
1. «Достық» интерфейс деген термин не мағына береді?
2. Пайдаланушы интерфейсті жасауда «оқиғалар»қалай пайдаланылады?
3. Loop bask технологиясы бойынша жөнге келтіру тәсілі қандай?
СОӨЖ 18
Компьютер терезесінде ақпаратты көрсету ерекшеліктері
Тапсырма:
1. Оператордың компьютерлік жүйемен диалогты өзара қатынасының эргономикалық – психологиялық аспектілерін білу.
2. Оператордың компьютерлік жүйемен диалогтық өзара қатынасының эргономикалық қамтамасыз етуінің негізгі талаптарын білу.
ны өткізу түрі – тренинг.
Әдістемелік ұсыныс : Диалогтық өзара қатынастың техникалық және бағдарламалық аспектілерінің қатарында, диалогтың эргономикалық қамсыздандыруы маңызды роль атқарады. Осы көзқарастан аталмыш дәрісте «адам - машина» интерфейсін жобалау бойынша практикалық ұсыныстар қамтымайтын, адам – оператордың негізгі сипаттамалары қастырылған болатын.
Көбірек таралған «адам компьютерлік жүйе» интерфейсі дисплей ортасымен жүзеге асырылатын диалогтық эргономикалық аспектілерін қарастырамыз. Осындай интерфейсті қамтамасыз ететін программисттің негізгі тапсырмасы – «сурет» диалогын терезенің әр қадамында құру және бар болуын қамтамасыз ету болып табылады. Эргономикалық көзқараспен мұнда екі талап бөлінеді.
- Кадрдағы сурет оператордың теріс психологиялық реакциясын (шаршау, жалығу т.б) туғызбау қажет;
- Кадрдағы ақпарат көргенде максималды оңай қабылданатын болуы тиіс.
Диалогтық жүйемен жұмыс істей отырып, адам уақыттың әрбір сәтінде құрамы, мәні және маңыздылығы бойынша әртүрлі ақпаратты қарайды. Кадрдларды біріктірудің негізгі мақсаты бейненің композициясы оператор назарын басқаратындай етіп және оператордың тиімді жұмыс істеуіне себепші болатындай, осы ақпаратты көрсету болып табылады. Осы тапсырманы шешудің құралын қысқаша қарастырайық.
Ақпараттық бөлу. Бағдарламалау тәжірбиесінде, оператордың назарын қайта үйлестіру үшін пайдаланатын, ақпаратты бөлудің келесі әдістері белгілі: ақпараттың әр түрін берудің жарықтылығын өзгерту; бейне және/немесе түстің қозғалу немесе жыпылдату режимінде ақпаратты шығару; ақпарат түсі мен фон түсін варьиерлеу; шрифтерді таңдау және мәтіндік хабарламаларын сызып көрсет; бейне анимациясы; ақпаратты дыбыстық және түстік сигналдармен әшекейлеу.
Кадр композициясы. Кадр ақпаратты орналастыру кезінде бейнені бәрінен бұрын келесі құрамдас бөлімдеріне (компоненттер) құрылымдау қажет: терезесі (экранның төртбұрыштық фрагменті), жол, өріс (ақпараттық бөлек элементі) және сурет. Компонент келесі сигналдарға ие: өлшемі ауырлық ортасы және түстік шешім. Композицияның негізгі принципі көрсетілген сипаттамалар бойынша кадр компоненттің жүйесінің дұрыстығына қол жеткізу болып табылады.
екция №27
Бағдарламалық қосымшалардың ақпараттық өзара қатынас интерфейсі
HTTP мысалында бағдарламалық қосымшалардың өзара қатынас интерфейсін қарастырамыз. Интерфейс тізбектеліп орындалады.
Бірінші кезең - HTTP клиенті (браузер) сервермен қосылғанда. Бұл үшін ол TCP/IP хаттамасын) қолданады және байланыс клиентке белгілі TCP портпен қосылады. Порттың қабылданған номірі - 80: басқа сервистергс басқа TCP - порттар белгіленген.
Екінші кезең - клиенттің сұранысы болып табылады: клиент сұраныстың тақырыбын жібереді (Request header) және мүмкін (әдісіне байланысты) сұраныс хабарламасының денесін де жіберуі мүмкін. Тақырыбында міндетті түрде тәсілі URL және HTTP нұсқасы көрсетіледі. Ол жерде тағы да міндетті емес жолдар бар болуы мүмкін, олар да серверге сұраныс қалай өңделіп отырғаны туралы ақпарат береді.
Yшінші кезең - сервердің жауабы, ол тақырыптан (Response header) тұрады. Ол жерде сервер HTTP нұсқасын және статус кодын көрсетеді. Ол нәтиженін дұрыс немесе дұрыс еместігін және онын себебін көрсетеді. Тақырыптан кейін, бос жолмен бөлінген жауаптың денесі келеді.
Төртінші кезең - TCP/IP қосындысының бүлінуі. Rcquesl header мына түрде болуы мүмкін: GFT MyDoc.htm 11ТТР/1.1 Connection: Keep-Alive User-Agent: Moalla/3.0 <Win95: I) Host: 212.54.196.226 Accept: image gif. image x-bitmap, image/jpeg. *.*
Мұнда: MyDoc.htm - сұраныс құжатының аты; GET- сұраныстың түрi; Host-IP-мекен-жайы: Accept-клиенттің деректер форматы. Request header алынған құжатының түpi: POST /Scripts ReadData.pl HTTP/I. I
Referer: Iittp://'2I2.54.196.226
Connection: Keep Alive
User-Agent: Mozilla/3.0 (Win95; I)
Host: 212.54.196.226
Accept: image/gif, image x-bitmap, image/jpeg, *.*
Content-type: application x-wwv-form-urlencoded
Content-length: 38
F irslName= Mary+ Ann&LastName= Sylvester
Мұнда: POST - формадан берілетін деректердің тасымалдау әдісі. Referer- web- парақтың мекен-жайы, бұл жерден пайдаланушы басқа құжат түріне ауысады: Content-type-берілетіндеректердің кодтау тәсілі; Content-length - берілетін деректер саны (байт). FirstName. Last Name - форма өрісінің атауы; Mary+Лпп, Sylvester берілетін мәндер (бос орын "+" таңбасымен ауыстырылған).
Web-сервер броузердің сұранысына жауап береді, оған НTML-құжатын жібереді, Response header осыған карайды.
Response header құрамында келесі деректер бар: HTTP/1.I 200 ОК Server: Microsoft-IlS>4.0
Date: Тис, 04 Apr 2005 00:26:34 GMT
Content-type: texlhtml
Set-Cookie: ASPSESSI()NIDFFFYXKFR=ACMNFUANKGBAMPBEGNGLEAB
<HTML>
{ HTML - код }
Бұл тақырып сервермен құрылған."200 ОК" жолы-бұл сұраныс статусы. Егер де сервер сұранысты өңдей алмаса, онда ол қате шықты деген хабарлама шығаратын еді, мысалы,"404 Object Not Found"; Content-type-құрамының типі(түpi). Броузер құжатты көрсетеді (оның кодын HTML-коды ретінде интерпретациялайды, өйткені Content-type мәні text/html ие) және қашан клиент (гиперсілтемеге барса) осы сайттың келесі бетіне сұраныс беруін күтеді немесе басқа сайтқа көшеді. Егер бетте бейне болса (мысалы,jрeg форматында), онда ол web-сервермен клиентке басқа Response header-мен жіберіледі, мұнда Content-type, image jpeg мағынасында болады. Sel-Cookie - клиент компьютеріне арнайы ақпарат мәнін орнатады. Бұл өрісте жүріп жатқан жұмыстың идентификаторы сақталады.
Мысал қарастыралық және клиенттің HTTP сұранысын кеңінен карастыралык.Ол былай болуы мүмкін:
POST htlp: localhosl HTTP 1.1
Accept: image/gif. irnage/x-xbitmap, image/jpeg. image'pjpeg. */* Accept-Language: ru
User-Agent* Mozilla/4.0 (compatible: MSIE 6.0: Windows NT 5.0) Host: localhost
Proxy-Connect ion: Keep- Al i ve paraml=I¶m2=2
Мысалдан сұраныстың "POST" сөзінен басталатыны көрінеді. Бұл сөз серверге берілетін деректердің әдісін көрсетеді. Мұнда сұраныстың қосымша деректері ("paraml = l¶m2=2*,) тақырыптан кейін беріледі.
HTML құжаттарында деректерді жіберу әдістері хабарлама жіберу формасында көрсетіледі. Мысалы, мына сұраныс алыну үшін,келесі форма қолданылды: < form aсtion= "http: locaIhost" method= "post">
<input type=hidden name="paraml" value="I">
<input type=hidden name="param2" value="2">
<input tуpе=submit></form>
Мысалдан көретініміз, параметр мына түрде жазылады.
[1-ші параметр аты]=[ 1-ші параметр мәні]& [2-ші параметр аты]=( 2-ші параметр мағынасы]&...
"Get" сұраныс әдісі жиі қолданылады. Сұраныстардың көпшілігі, деректерді жіберуді керек етпейтін - мысалы парақ сұранысы, осы әдіспен жүргізіледі. Сұраныс формасын өзгертейік:
<form action="http: localhost/" method="get">
<input type= hidden name="paraml" value="l">
<input type=hidden name="param2" value="2">
<input type=submit></form>
Келесі HTTP түріндегі сұраныс аламыз:
GЕT http://localhost/?paraml= I¶m2=2 HTTP I.I
Accept: image/git image, x-xbitmap, image/jpeg, image, pjpeg. */*
Accept-Language: ru
User-Agent: Mozilla/4.0 (compatible: MSIE6.0: Windows NT 5.0)
Host: localhost
Proxy-Connection: Keep-Alive
Kөрініп тұрғандай "paraml = l¶m2=2" жолы үстіге ауысады да "?" белгіден кейін, "http:// localhost/" жолына қосылды. Сонымен қатар HTTP тақырыбында бірінші сөз өзгерді, калғаны өзгеріссіз қалды.
GET әдісінің ерекшелігі мынадай: броузер жолынан қандай құжат жіберілгені көрінеді. Кемшілігіне: мұндай тәсілмен (POST әдісіне қарағанда) жіберілетін деректердің ұзындығы шектелген – кейбір броузерлер сияқты сұраныс құжатының мекен-жай ұзындығына шектеуі бар. Сәйкесінше, сұраныс жолы ұзын мекен-жай, қысқартылып тасталуы мүмкін немесе сервер қате «414 Request-URI Too Long» бар деп шығарады.
Бақылау сұрақтары:
- HTTP бойынша қосымшалардың өзара қатынас интерфейсі қанша кезеңнен тұрады?
- HTTP бойынша қосымшалардың өзара қатынас интерфейсінде Request header тақырыбының мағынасы қандай?
- HTTP бойынша қосымшалардың өзара қатынас интерфейсінде Response header тақырыбының мағынасы қандай?
екция №28-29.
Бағдарламалық қосымшалардың өзара қатынасының ақпараттық интерфейсін орындау
Сервер мен сыртқы бағдарламаның өзара қатынас интерфейсі. Сервер мен сыртқы бағдарламаның өзара қатынас интерфейсінің (Common Gateway Interfase) орындалуын қарастырайық. Common Gateway Interfase (CGI) ортасының айнымалысы.
Сервер CGI-скрипті (сыртқы бағдарламаны) қолданысқа жіберген уақытта қоршаған ортаны қалыптастырады. Онда скрипт HTTP-байланыстар жайында рұқсат етілген барлық ақпаратты, оған қоса сұраныммен алынған шамаларды анықтай алады. Көптеген CGI айнымалылар стандартталған. Ендігі жерде стандартты CGI ортаның айнымалыларын қарастырайық:
REQUEST_METHOD-HTTP сұраныстың әдісін анықтауға арналған басты жолдардың бірі. Жоғарыда аталып өткендей серверге сұраныс жіберу үшін HTTP хаттамасы GET және POST әдістерін пайдаланады. Олардың айырмашылығы, GET әдісінде,сұраныс URL-дің бір бөлігі болып табылады (мысалы, http://www.localhost/myscript.cgi?a=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-from-urlencoded анықталады).
GATEWAY_INTERFASE-CGI хаттамасының нұсқасы
Мысалы: GATEWAY_INTERFASE=CGI/1.1
REMOTE ADDR – аталмыш шақырылуды орындайтын, қашықтағы хостың IP – мекен-жайы.
Мысалы: REMOTE_ADDR=139.142.24.157
REMOTE_HOST-бұл, егер шақырған хостың домендік есімі болса, онда ол айнымалыны қамтиды, қарсы жағдайда ол REMOTE_ADDR сияқты IP-мекен-жай.
Мысалы: 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/micrisofy/com сияқты), алайда ол IP мекен-жай болуы да мүмкін (мысалы, 157,151,74,254 түрдегі).
Мысалы: SERVER_NAME=www/tksite/edu
SERVER_PORT-сервердің ТСР-порты, ол байланыс жасау үшін пайдаланылады. Келісім бойынша НТТР-порттың нөмірі 80, алайда кейбір жағдайда ол басқа да болуы мүмкін.
Мысалы: SERVER_PORT=80
SERVER_PROTOCOL-сервер хаттамасының нұсқасы
Мысалы: SERVER_PROTOCOL=HTTP/1.1
SERVER_SOFTWARE-сервердің бағдарламалық қамтамасы
Мысалы: Apache/1.0
Клиент пен сервер арасындағы өзара қатынас жайлы негізгі ақпарат қоршаған ортаның стандартты айнымалылары арқылы алынады. CGI-сценарийін іске қосқан сайын ол бірінші рет жұмыс жасағандай күй кешеді. Әрбір рет инициализация процедурасы басынан бастап жүзеге асады. Кіріс деректерді оқудан бұрын қоршаған орта айнымалысының REQUEST_METHOD мәнін анықтау керек және ол қандай ақпарат қамтиды get немесе post? Содан кейінгі әрекеттер осы мәнге байланысты өзгеріп отырады.
Кіріс деректерді нақты бір жолды жазу мақсатына байланысты. Жалпы жағдайда деректерді өңдеу ол түрлендіру деп саналады.
GET әдісі үшін кіріс деректерін өңдеу.
GET әдісі үшін кіріс деректерді өңдеудің алгоримті келесі қадамдар бойынша жүзеге асады:
QUERY_STRING айнымалысының мәнін анықтау, есімдер мен олардың мәндерін декодтау. Және де бос орын белгілері “+” белгісіне, ондық кодтар 128-н асатын белгілер “%” белгісіне алмастырылады. Ал олардан кейінгілер он алтылық кодпен алмастырылады.
“Есім-мән” құрылымын қалыптастыру.
GET әдісінде бағдарламаға деректерді жіберу айнымалы ортаға байланысты орындалады. QUERY_STRING айнымалысына келесі форматтағы жолдардың мәні келіп түседі: “Есім1=Мәні1&Есім2=Мәні2&Есім3=Мәні3...&ЕсімN=МәніN”
Мұндағы есім N-NAME атрибутының мәні, ол форманың басқару элементінің есімін береді. Мәні N орнына сервер Value атрибутының мәнін жазады. Оны пайдаланушы есім N элементінде енгізген. QUERY_STRING жолын бағдарламалау тілінің қарапайым функциялары арқылы өңдейді. Бірақ оны қайта өңдеуге тыйым салынады. Бұл жол URL-кодтауды қолданады.
Кіріс деректерді декодтаудан кейін, жол массивінде барлық есім=мән жұбы сақталады. Бұл массивті пайдаланушы есептің қойылу шартына байланысты әр түрлі пайдаланады.
POST әдісі үшін кіріс деректерді өңдеу
Кіріс деректерді POST әдісі бойынша өңдеудің алгоритмі келесі қадамдардан тұрады:
CONTENT_LENGTH айнымалысының мәнін анықтау, есімдер мен олардың мәндерін декодтау. Және де бос орын белгілері “+” белгісіне, ондық коды 128-н асатын белгілер “%” белгісіне алмастырылады. Ал олардан кейінгілер он алтылық кодпен алмастырылады.
“Есім-мән” құрылымын қалыптастыру.
STDIN ағымынан деректерді оқу керек. Егер CONTENT_TYPE қоршаған орта айнымалысының құрамында application/x-www-form-uriocoded мәні болса, онда STDIN ағымындағы деректерді де декодтау керек.
POST әдісі бойынша кіріс деректер stdin стандартты ағымы арқылы жүзеге асады. STDIN ағымы бойынша кірген деректердің байт бойынша көлемі CONTENT_LENGTH айнымалысында көрсетіледі.
Сыртқы бағдарлама мен сервердің өзара қатынас интерфейсін қарастырамыз.
Пайдаланушыға деректер енгізу. Пайдаланушыдан берген кіріс деректердің енгізу әдісіне қарамай, CGI бағдарламасы өзінің шешімін STDOUT стандартты ағымына жібереді. Бұл шешім HTML-құжат түрінде немесе сервердің ережелері түрінде болады, мұнда қажетті ақпаратты алуға болады. Соңғы әдістің басымдығы мынада: cgi-модуль әрбір шақырылым үшін толық HTTP тақырыбын жасауға міндетті емес.
Сценарийді шығару тақырыбы. Әдетте, сценарийді шығару сервермен жүзеге асады және пайдаланушыға жіберіледі. Торап арқылы жіберілген файлдың түрі жайлы ақпаратты броузер тіркейді және ол файлдан бұрын жетеді. Сервер тақырыпты құра алмағандықтан, сценарийдің өзі сәйкес тақырыпты жіберуді қамтамасыз етуі тиіс. Осыған орай, деректерді өңдеуден бөлек, сценарий шығу ағымына түзу қатесіз жазылған мәтінді жіберу керек. Ол мәтін жолдарынан және жауап өрістерден: жалпы тақырыбы (General- Header) және хабарлама денесінің тақырыбынан ( Entity - Header), сонымен қатар жауаптар тақырыбынан ( Response - Header) тұрады.
Шығарылу кіші тақырыптан басталады. Ол HTTP тақырыбы форматындағыдай мәтіндік жолдардан тұрады және бос жолмен ( жолды ауыстыру символынан тұрады) аяқталады. Мәтіннің кез келген жолы, егер ол сервердің директивасы болмаса, тікелей қолданушыға жіберіледі. Қазіргі уақытта CGI торабы сервердің үш директивасын қарастырады:
Есімі | Анықтама беру |
Content-type | Қайтарылған құжаттың MIME-түрі |
Location | Серверге құжаттың өзі емес, құжатқа сілтеме жіберіледі. Осы кезде сервер пайдаланушыға шақырылуды қайта жіберуді сұрайды. |
Status | Серверге HTTP жол–статус береді, ол пайдаланушыға жіберіледі. Формат: nnn xxxxx, мұнда nnn-үш санды статус-код және xxxxx-себеп жолы |
Қызықты ақпарат жағдай жолында болады. Жағдай жолы келесідей форматта болады: HTTP/version – нұсқа, Status – Code – нәтижені идентификациялайтын статустың үш орынды коды және Status – Phrase кодты түсіндіретін мәтіндік тұжырым. Статус коды броузермен пайдаланылады, ал мәтіндік тұжырым пайдаланушыға арналған. Статус кодының бірінші саны жауаптың класын анықтауға арналған.
Кодтың бірінші санымен анықталатын бес санат бар:
1. 1хх:әзірге қолданыста жоқ, болашақта қолдануға сақталынуда;
2. 2хх: сәтті жол:шақырылу қабылданды және ол өңделуде;
3. 3хх: қайта жіберу – қолданушы шақырылуды қайта жасауы тиіс;
4. 4хх: пайдаланушының қателігі – шақырылу дұрыс өңделмеді. Егер қолданушы өзінің шақырылуын 4хх коды бар жауап келгенге дейін тоқтатпаса, онда ол серверге дерек жіберуді тоқтатуы керек;
5. 5хх: Web – сервердің қателігі – дұрыс жасалған шақырылуға жауап бере алмады.
Келесі кестеде HTTP – дің жауап кодтары келтірілген:
Статус коды | Мағынасы |
Ok | |
Post сәтті команда | |
Шақырылу қабылданды | |
Get немесе HEAD шақырылу орындалды | |
Шақырылу орындалды, бірақ ішіндегісі жоқ | |
Ресурс бірнеше жерден табылды | |
Ресурс мүлдем жойылған | |
Ресурс уақытша орнында жоқ | |
Шақырылу өзгертілінген | |
Пайдаланушыдан шақырылу нашар | |
Анықталмаған шақырылу | |
Ресурс төлемін төлеу қажет | |
Пайдалануға рұқсат жоқ | |
Ресурс табылмады | |
Аталмыш ресурс үшін бұл әдіс қолданылмайды | |
Ресурстың бұл түріне рұқсат жоқ | |
Ресурсқа рұқсат жоқ | |
Сервердің ішкі қатесі | |
Әдіс орындалған жоқ | |
Сценарий бұзылған немесе сервердің жүктемесін көп болып кеткен | |
Серверге рұқсат жоқ/сценарийдің тайм-ауты | |
Екінші сценарий/сервердің тайм-ауты |
Status директивасы CGI – сценарийге өңдеу жағдайы туралы хабарламаны қайтаруға мүмкіндік береді. Егер бұл директива берілмеген болса, онда сервер 200 Ok көрсетеді.
Мысалы:
Status:404 Not found
Сервер осы ақпарат негізінде тақырыпты негіздейді. Оны пайдаланушыға жібереді.
Мысалы, директивтер жиыны:
HTTP/1.0 200 Ok
Server:NCSA/1.0a6
Content – type:text/html
шақырылудың ойдағыдай орындалғанын хабарлайды.
Мұнда:200 – код шақырылудың ойдағыдай орындалғанын білдіретін, “Ок” соны білдіреді. Келесі директива: Content - type: text/html
Егер жауап денесі бар болса, онда міндетті түрде орын алады.
Инициализацияны орындау барысында барлық параметрлер алдын ала белгілі (немесе оларды тану қиын емес), ал шешілетін тапсырмалар сценарийлердің кез келгеніне бірдейлеу болып келеді. Кіріс деректерін өңдеу кезеңінде орындалатындар, сценарийдің жазылу мақсаттарына байланысты. Жалпы алғанда, кіріс деректерінің өңделуі, оларды түрлендіру болып табылады.
Жұмысты инициализацияланған кейін, кіріс деректері оқылып, олардың жеке айнымалыларға бөлінгенінен кейін, сценарий жұмыстың негізгі бөлігінің орындалуға дайын болады. Жұмыстың бұл бөлігінде сценарий деректерді шығаруға дайындайды және қадамдары инициализация кезеңіндегідей онша қатаң регламенттенбейді. Барлық орындалатын әрекеттер қойылған мақсаттармен анықталады. Деректерді өңдеу CGI – да күрделі емес болғандықтан, ал сценарийді құрудың мақсаты үнемі кейбір шығу ақпаратын дайындау болып табылады. Сол себепті, кіріс деректерін өңдеу және шығыс деректерін дайындаудың формалданған қадамдары бағдарламаның бір фазасына бірігеді.
Нәтижелердің шығарылуы. Қарапайым CGI – сценарийінде шығу ақпараты, тек тақырып және HTML мәтіннен тұрады. Күрделірек сценарийлер кейбір қосымша деректер енгізілген сценарийді қайта шақыруға қажетті графиканы, мәтінді графиканы немесе жалпы барлық ақпаратты шығара алады.
Аяқтау дегеніміз барлық пайдаланған ресурстардан босатылу, тазалануы және бағдарламадан шығарылуы болып табылады. Егер бос жадының немесе басқа обьектілердің бөлінуі орындалған болса, олардың да босатылуы қажет. Олай істелінбеген жағдайда жүйенің барлық ресурстары жойылып немесе құлыптанып қалуы және басқа сценарийлердің немесе жалпы сервердің жұмысы тоқтап қалуы мүмкін. Платформалардың көпшілігіне файлдар мен жадыдағы обьектілер автоматты түрде жабылады да, оларды пайдаланған процесс біткеннен кейін операциялық жүйемен жабылады. Бірақ бұл жағдайда ресурстарды босату барысында толығымен операциялық жүйеге сүйену дұрыс емес.
Бақылау сұрақтары:
1. CGI интерфейсінде орталардың айнымалылары қандай ақпараттардан тұрады?
2. Сервер мен сыртқы орта бағдарламаның өзара қатынас интерфейсіне get әдісі үшін деректер қалай өңделеді?
3. Сервер мен сыртқы бағдарламаның өзара қатынас интерфейсінде post әдісі үшін кіріс деректері қалай өңделеді?
4. Сыртқы бағдарламамен кіріс деректерін өңдеу жұмысының кезеңдері қандай?
5. Сервер мен сыртқы бағдарлама өзара қатынас интерфейсінде post сценарийді шығару тақырыбы қандай ақпарат әкеледі?