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

 

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

HTTP мысалында программалы осымшаларды зара атынас интерфейсін арастырамыз. Интерфейс тізбектеліп орындалады.

Бірінші кезе - HTTP клиенті (броузер) сервермен осыланда. Бл шін ол TCP/IP протоколын олданады жне байланыс клиентке белгілі TCP портпен осылады. Портты абылданан нмірі – 80; баса сервистерге баса TCP – порттар белгіленген.

Екінші кезе - клиенті сранысы болып табылады: клиент сранысты таырыбын жібереді (Request header) жне ммкін (дісіне байланысты) сраныс хабарламасыны денесін де жіберуі ммкін. Таырыбында міндетті трде тсілі, URL жне HTTP версиясы крсетіледі. Ол жерде таы да міндетті емес жолдар бар болуы ммкін, олар да серверге сраныс алай деліп отыраны туралы апарат береді.

шінші кезе - серверді жауабы, ол таырыптан (Response header) трады. Ол жерде сервер НТТР версиясын жне статус кодын крсетеді. Ол нтижені дрыс немесе дрыс еместігін жне оны себебін крсетеді. Таырыптан кейін, бос жолмен блінген жауапты денесі келеді.

Тртінші кезе - ТСР/ІР осындысыны блінуі.

Request header мына трінде болуы ммкін:

GET /MyDoc.htm HTTP/1.1

Connection: Keep-Alive

User-Agent: Mozilla/3.0 (Win95; I)

Host: 212.54.196.226

Accept: image/gif, image/x-bitmap,

image/jpeg, *.*

Мнда:MyDoc.htm - сраныс жатыны аты; GET- сранысты трі; Host-IP-мекен-жайы; Accept-клиентті деректер форматы.

Request header алынан жатыны трі:

POST /Scripts/ReadData.pl HTTP/1.1

Referer: http://212.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-www-form-urlencoded

Content-length: 38

FirstName=Mary+Ann&LastName=Sylvester

 

Мнда: POST - формадан берілетін деректерді тасымалдау дісі. Referer- web- параты мекен-жайы, бл жерден пайдаланушы баса жат тріне ауысады; Content-type-берілетін деректерді кодттау тсілі; Content-length - берілетін деректер саны (байт). FirstName, LastName - форма рісіні атауы; Mary+Ann, Sylvester – берілетін мндер (бос орын ”+”табасымен ауыстырылан).

Web-сервер броузерді сранысына жауап береді,оан HTML-жатын жібереді, Response header осыан арайды.

Response header рамында келесі деректер бар:

HTTP/1.1 200 OK

Server: Microsoft-IIS/4.0

Date: Tue, 04 Apr 2005 00:26:34 GMT

Content-type: text/html

Set-Cookie: ASPSESSIONIDFFFYXKFR=ACMNFLJANKGBAMPBEGNGLEAB

<HTML>

{ HTML - код }

Бл таырып сервермен рылан.”200OK”жолы-бл сраныс статусы. Егер де сервер сранысты дей алмаса, онда ол ате шыты деген хабарлама шыаратын еді, мысалы”404 Object Not Found”; Content-type-рамыны типі(трі). Броузер жатты крсетеді (оны кодын HTML-коды ретінде интерпретациялайды, йткені Content- type мні text/html ие) жне ашан клиент (гиперсілтемеге баса) осы сайтты келесі бетіне сраныс беруін ктеді немесе баса сайта кшеді. Егер бетте бейне болса (мысалы,jpeg форматында), онда ол web-сервермен клиентке баса Response header-мен жіберіледі, мнда Content-type, image/jpeg манасында болады. Set-Cookie - клиент компьютеріне арнайы апарат мнін орнатады. Бл рісте жріп жатан жмысты идентификаторы саталады.

Мысал арастыралы жне клиентті HTTP сранысын кеінен арастыралы.Ол былай болуы ммкін:

POST http: //localhost/ HTTP/1.1

Accept: image/gif, image/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-Connection: Keep-Alive

paraml=l&param2=2

Мысалдан сранысты “POST” сзінен басталатыны крінеді. Бл сз серверге берілетін деректерді дісін крсетеді. Мнда сранысты осымша деректері (“param1=1&param2=2”) таырыптан кейін беріледі.

HTML жаттарында деректерді жіберу дістері хабарлама жіберу формасында крсетіледі. Мысалы,мына сраныс алыну шін,келесі форма олданылды:

<form action="http://localhost/" method="post">

<input type=hidden name="param1" value="1">

<input type=hidden name="param2" value="2">

<input type=submit></form>

Мысалдан кретініміз, параметр мына трде жазылады

 

[1-ші параметр аты]=[ 1-ші параметр мні]& [2-ші параметр аты]=[ 2-ші параметр маынасы]&…

”Get” сраныс дісі жиі олданылады. Сраныстарды кпшілігі, деректерді жіберуді керек етпейтін - мысалы пара сранысы, осы діспен жргізіледі. Сраныс формасын згертейік:

<form action="http://localhost/" method="get">
<input type=hidden name="param1" value="1">

<input type=hidden name="param2" value="2">

<input type=submit></form>

получим следующий HTTP запрос:

GET http://localhost/?param1=1&param2=2 HTTP/1.1

Accept: image/gif, image/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-Connection: Keep-Alive

Крініп трандай “param1=1&param2=2” жолы стіге ауысады да “?” белгіден кейін, “http://localhost/” жолына осылды. Сонымен атар HTTP таырыбында бірінші сз згерді, аланы згеріссіз алды.

GET дісіні ерекшілігі мынадай: броузер жолынан андай жат жіберілген крінеді. Кемшілігіне: мндай тсілмен (POST дісіне араанда) жіберілетін деректерді зындыы шектелген – кейбір серверлер, кейбір броузерлер сияты сраныс жатыны мекен-жай зындыына шектеуі бар. Сйкесінше, сраныс жолы зын мекен-жай, ысартылып тасталуы ммкін немесе сервер ате “414 Request-URI Too Long” бар деп шыарады.

 

дебиет: 1нег.[20-26],2нег.[80-98],7ос.[100-117],9ос.[211-234].

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

1. НТТР бойынша осымшаларды зара атынас интерфейсі анша кезенен трады?

2. НТТР бойынша осымшаларды зара атынас интерфейсінде Request header таырыбыны маынасы андай?

3. НТТР бойынша осымшаларды зара атынас интерфейсінде Response header таырыбыны маынасы андай?

4. Пайдаланушы интерфейсті орындайтын компонентер НТТР бойынша осымшаларды зара атынас интерфейсімен алай байланысады?