Универзитет Сингидунум
Факултет за информатику и рачунарство

Рачунарске мреже

Младен Веиновић, Александар Јевремовић

6.2.1.2.1. Поруке, методи и кодови статуса


Поруке протокола за пренос хипер текста могу бити захтеви клијента ка серверу и одговори сервера на њих. Оба типа порука имају исту структуру: заглавље - које је обавезно, и тело - које је опционо. У поља заглавља спадају општа поља, поља специфична за захтеве и поља специфична за одговоре.


Слика 5.2.1.2.1-1. Пример захтева протокола за пренос хипертекста

Тело порука протокола за пренос хипертекста је опционо, а на његово присуство указује поље заглавља која се односе на дужину садржаја (енгл. Content-Length) и начин кодовања садржаја (енгл. Transfer-Encoding). Неки методи овог протокола подразумевају присуство тела у порукама, док је оно код неких метода сувишно. Тело поруке се пре слања кодује на одговарајући начин, а његова дужина се израчунава након кодовања.

У оквиру протокола за пренос хипертекста дефинисано је више метода. Метод који се позива задаје се оквиру прве линије заглавља захтева. Два најчешће коришћена метода овог протокола су методи GET и POST. У остале предефинисане методе спадају OPTIONS, HEAD, PUT, DELETE, TRACE и CONNECT.

Параметар који следи након навођења метода јесте апсолутна путања ресурса који се захтева. У оквиру заглавља се обавезно наводи и адреса (симболичка или логичка) домаћина на коме се ресурс налази. Навођење адресе домаћина је обавезно (без обзира на то што су логичка адреса и порт већ дефинисани у оквиру адреса протокола мрежног и транспортног слоја) јер је могуће са једног сервера испоручивати садржај за више различитих симболичких (доменских) имена.


Слика 5.2.1.2.1-2. Пример одговора протокола за пренос хипертекста

Метод GET протокола за пренос хипертекста представља један од његових најједноставнијих и најчешће коришћених метода. Његова основна улога јесте захтевање једноставног преузимања наведеног ресурса. Захтевани ресурс може бити статичан документ или процедура за генерисање садржаја.

GET /Studije/Poslediplomske

HOST: www.singidunum.ac.rs

Следећи најчешће коришћени метод протокола за пренос хипертекста је метод POST. Овај метод се, као и претходни метод GET, може користити за захтевање ресурса али је његова основна намена слање садржаја (дужег или краћег текста, фајлова и сл.) серверу. У принципу, слање текста је могуће и коришћењем метода GET, коришћењем дела за упит у униформном локатору ресурса. На пример, у следећем коду се параметри HTML формулара серверу шаљу у оквиру захтева са GET методом:

<form method=“GET“ action=“prijava.php“>

Корисник: <input type=“text“ name=“korisnik“ />

Лозинка: <input type=“password“ name=“lozinka“ />

<button type=“submit“>Пријављивање</button>

</form>

Постоји, међутим, више потенцијалних проблема код коришћења GET метода за прослеђивање корисничког уноса у формуларе. Један од њих се односи на основну заштиту података које је корисник унео у формулар. У претходном формулару је искоришћена контрола за унос лозинке (ознака input са типом password) са циљем да евентуални посматрачи екрана који се користи за попуњавање формулара немају могућност да виде коју је вредност лозинке корисник унео.


Слика 5.2.1.2.1-3. Лозинка је скривена коришћењем одговарајуће контроле

Коришћење POST метода елиминише део униформног локатора у коме се налази упит. Међутим, због употребе GET метода, корисников Веб браузер ће поља из формулара превести у упит униформног локатора ресурса. У складу са тим, корисниковa лозинка ће на следећем екрану бити разоткривена кроз приказ адресе:

http://adresa.servera/prijava.php?korisnik=petar&lozinka=abc123

Следећи проблем који се може јавити као последица коришћења GET метода за слање формулара јесте одсецање краја униформног локатора ресурса услед прекорачивања његове највеће дозвољене дужине. Највећа дозвољена дужина униформног ресурса локатора се подешава на серверу, а подразумевано износи 8.192 бајта. Одсецање дела локатора који прелази дужину коју сервер дозвољава (што је подразумевано понашање сервера у таквим ситуацијама) доводи до губитка дела корисничког уноса.

Један од честих проблема код Веб апликација јесте вишеструко слање корисничког уноса у формулар као поседица захтева за освежавањем странице на којој је извршена обрада корисничког уноса у формулар од стране сервера. Из тог разлога већина савремених Веб браузера захтева додатну потврду корисника уколико је корисник задао захтев за освежавањем такве странице.


Слика 5.2.1.2.1-4. Освежавање странице добијене POST методом захтева одобрење

Метод HEAD је идентичан методу GET с том разликом што у одговоре на захтеве добијене путем њега није укључено тело поруке. Овај метод се првенствено користи за добијање информација о ресурсу, потврђивање његовог постојања и слично.

Насупрот методима у захтевима, у оквиру одговора користе се кодови статуса као индикатори типа резултата добијеног извршавањем захтеваног метода. Кодови статуса су троцифрени бројеви који се могу поделити у пет основних група, у зависности од прве цифре:

  • јединица - код статуса означава да је захтев примљен и да се наставља његова даља обрада;

  • двојка - код статуса означава да је захтев успешно примљен и да је захтевана акција успешно извршена;

  • тројка - код статуса означава да је захтевано преусмеравање клијента на нову адресу у циљу успешне обраде захтева;

  • четворка - код статуса означава да у захтеву клијента постоји синтаксичка или нека друга грешка, те да на захтев није могуће одговорити;

  • петица - код статуса означава да сервер из интерних разлога није у стању да одговори на захтев, иако се сам захтев сматра валидним.

Кодови статуса протокола за пренос хипертекста су прошириви, уз поштовање наведеног формата у виду троцифрених бројева. Од клијентских и серверских имплементација се не захтева подршка за све основне кодове статуса, али се захтева способност категорисања одоговора на основу прве цифре.

 
Internet marketing
Преузмите ПДФ целе књиге
Заштита у рачунарским мрежама
Овладајте Веб развојем и РНР програмирањем
Овладајте савременим базама података
Обратите се ауторима:
Ваша имејл адреса:
Ваше име:
Порука:
Безбедносни код:
Captcha
Research Gate
Слика [Chapter:Number]