= Hypertext Transfer Protocol = ##Įrašykite terminą anglų kalba == HTTP == ##Jeigu yra įrašykite Santrumpą == Hyperteksto perdavimo protokolas == ##Įrašykite lietuvišką termino vertimą ---- == Apibrėžimas == Tai yra pagrindinis ir populiariausias visame pasaulyje metodas pasiekti informacija pasauliniame tinkle (World Wide Web), kitaip sakant - tai hyperteksto perdavimo protokolas, Interneto pagrindas. Pagrindinis protokolo tikslas yra pateikti standartizuotą būdą HTML puslapių peržiūrai. ##Suformuluokite termino apibrėžimą ---- == Paaiškinimai == '''HTTP''' yra užklausos – atsakymo protokolas, kuris inicijuoja ryšį tarp kliento ir serverio. Naršyklė yra HTTP klientas, kuris naudodamas TCP/IP ryšį (dažniausiai HTTP protokolui naudojamas 80 prievadas „Portas“), siunčia užklausą pvz.: „GET / HTTP/1.1 į tam tikrą nutolusį kompiuterį ar serverį. HTTP serveris gavęs užklausą „GET / HTTP/1.1“ atgal atsiunčia atsakymą „200 OK“ kartu su susijusiu pranešimu, kuris dažniausiai būna HTML puslapis. . '''Yra galimi trys HTTP operacijų tipai: ''' . '''1.''' Aukščiau aprašytas, tiesioginis ryšys, kuris vyksta betarpiškai tarp kliento ir serverio. . '''2.''' Panaudojant papildomus (tarpinius) serverius. Galimi trys atvejai: . {{attachment:HTTP.JPG}} . '''"Proxy"''' veikia klientų pusėje ir jų užklausas perduoda serveriui. Tai gali būti ir lokalaus tinklo ekranas ("firewall"), kuriam serveris turi "prisistatyti", kad galėtų bendrauti su surinkėju, kuris priima tik tuos atsakymus, kurie praėjo pro filtrą. Kitu atveju, kai valdomos skirtingos kliento ir serverio HTTP versijos, "proxy" atlieka vertėjo paslaugas. . '''"Gateway"''' (tiltas) klientui prisistato, lyg jis ir būtų tikrasis serveris. Per jį kiti serveriai, neturintys tiesioginio ryšio su klientu, gali perduoti informaciją. Naudojant kaip ekraną ("firewall"), prisistatyti turi klientas (o ne serveris, kaip "proxy" atveju), kuris po to (jei užklausa patenkinama) prileidžiamas prie serverio. Kitu atveju, tai ryšio palaikymas su serveriu, nedirbančio HTTP protokolu, pvz., FTP ar "Gopher". . '''"Tunel"''' paprasčiausiai tėra jungtis tarp dviejų TCP ryšių. HTTP paketai keliauja nepakitę. Jie naudojami, kai tarp kliento ir serverio yra tarpinis serveris, o kita nesvarbu. . '''3.''' Trečiasis HTTP operacijų tipas - „cache“, t.y. ankstesnių užklausų ir atsakymų įsiminimas. . {{attachment:HTTP2.JPG}} . Jei užklausa sutampa su kuria nors, saugoma „cache“ serveryje, - iškart siunčiamas atsakymas. „cache“ gali būti tiek kliento, tiek serverio pusėje. Ne visas tranzakcijas galima įsiminti, - ir tai gali valdyti tiek klientas, tiek serveris. ''' Pagrindinės HTTP užklausos:''' HTTP užklausos iš esmės yra komandų rinkinys, siunčiamas iš naršyklės į tinklapio serverio. '''Užklausos sudėtis''' * Užklausos eilutė – (ang. A request line) ši eilutė yra sudaroma iš tryjų, tarpais atskirtų, elementų. Kuriuose yra nurodomas prašomo dokumento tipas (URL), metodas kuris bus taikomas (METHOD) bei protokolo versija (VERSION). * Užklausos antraštės laukai – (ang. The request header fields) šios eilutės nusako papildmą užklausos informaciją. Kiekviena šio tipo eilutė yra sudaroma iš apibrėžiamo antraštės tipo (HEADER), po kurio eina dvitaškis (:), ir antraštės reikšmės (Value). * Pagrindinė užklausos dalis – (ang. The body of the request) ši dalis turi būti atskiriama tuščia eilute (Emty line), nuo prieš tai buvusių eilučių. Nusako papildomą užklausos informaciją. <
> '''HTTP 1.0 užklausos sintaksė:''' . ''METHOD URL VERSION'' . ''HEADER: Value'' . ''.'' . ''.'' . ''.'' . ''HEADER: Value'' . ''Tuščia eilutė'' . ''BODY OF THE REQUEST'' <
> '''Žemiau pateikiamas HTTP 1.0 užklausos pavyzdys:''' . ''GET http://en.kioskea.net/ HTTP/1.0'' . ''Accept: text/html'' . ''If-Modified-Since: Saturday, 15-January-2000 14:37:11 GMT'' . ''User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 95)'' <
> * '''GET''' – dažniausiai naudojama užklausa. Ji reikalauja tam tikro resurso (duomenų) duotu URL adresu. * '''POST''' – panašu į GET, bet siunčiama papildoma informacija, paprastai raktų ir reikšmių poros, nusakančios HTML formos laukų reikšmes. * '''PUT''' – naudojama failų dėjimui į serverį. * '''DELETE''' – naudojama trynimui, retai palaikoma. * '''HEAD''' – panaši į GET, tačiau reikalaujama tik atsakymo antraštė, o pats atsakymo dokumentas nelaukiamas. * '''TRACE''' – grąžina gautą užklausą, gali būti naudojama tikrinimui, kokių papildomų meta-duomenų prideda tarpiniai serveriai. * '''CONNECT''' – retai palaikoma, dažniausiai naudojama „tuneliniam ryšiui“ (SSL tunneling) <
> '''Užklausos antraščių tipai''' ||Antraštė|| Apibrėžimas|| ||Accept ||Turinio tipas, kurį pripažįsta klientas (pvz. text/html)|| ||Accept-Charset ||Kliento pripažįstamas simbolių rinkinys|| ||Accept-Encoding ||Kliento pripažįstamas duomenų kodavimas|| ||Accept-Language ||Kalba kurios tikisi klientas (pagal nutylėjimą – anglų)|| ||Autorization ||Kiento indetifikavimas serveriui|| ||Content-Encoding ||Pagrindinės užklausos dalies kodavimo tipas|| ||Content-Language ||Pagrindinės užklausos dalies kalbos tipas|| ||Content-Length ||Pagrindinės užklausos dalies ilgis|| ||Content-Type ||Pagrindinės užklausos dalies turinio tipas (pvz. text/html)|| ||Date ||Duomenų persiuntimo pradžios data|| ||Forwarded ||Nurodomas tarpinis įrenginys tarp kliento ir serverio|| ||From ||Suteikia galimybę klientui nurodyti e-paštą|| ||Link ||Nuoroda tarp dviejų URL adresų|| ||Orig-URL ||URL adresas iš kurio atėjo užklausa|| ||Referer ||Nuoroda URL adreso, kuriame užklausa buvo sukurta|| ||User-Agent ||Eilutė nurodanti informaciją apie klientą (pvz. naršyklės pavadinimą ir versiją, operacinę sistemą)|| '''HTTP atsakas''' HTTP atsakas yra komandų rinkinys siunčiamas naršyklei iš tinklapio serverio. Jį sudaro: * Būsenos eilutė – (ang. A status line) ši eilutė susideda iš trijų elementų, kurie turi būti atskiriami tarpais: . • Naudojamo protokolo versija (VERSION-HTTP); . • Būsenos kodas (CODE); . • Būsenos reikšmė (EXPLANATION). * Atsako antraštės laukai – (ang. The response header fields) šios eilutės nurodo papildomą informaciją, kuri gali būti pateikiama prie atsako. Kiekviena šio tipo eilutė yra sudaroma iš apibrėžiamo atraštės tipo (HEADER), po kurio eina dvitaškis (:), ir antraštės reikšmės (Value). * Pagrindinė atsako dalis – (ang. The body of the response) užklausoje prašomas dokumentas. <
> '''HTTP 1.0 atsako sintaksė: ''' . VERSION-HTTP CODE EXPLANATION . HEADER: Value . . . . . . . HEADER: Value . Tuščia eilutė . BODY OF THE RESPONSE <
> '''HTTP 1.0 atsako pavyzdys:''' . HTTP/1.0 200 OK . Date: Sat, 15 Jan 2000 14:37:12 GMT . Server: Microsoft-IIS/2.0 . Content-Type: text/HTML . Content-Length: 1245 . Last-Modified: Fri, 14 Jan 2000 08:25:13 GMT '''Atsako antraščių tipai''' ||Antraštė|| Apibrėžimas|| ||Content-Encoding|| Pagrindinės atsako dalies kodavimo tipas|| ||Content-Language|| Pagrindinės atsako dalies kalbos tipas|| ||Content-Length|| Pagrindinės atsako dalies ilgis|| ||Content-Type|| Pagrindinės atsako dalies turinio tipas (pvz. text/html)|| ||Date|| Duomenų persiuntimo pradžios data|| ||Expires|| Duomenų galiojimas pagal datą|| ||Forwarded|| Nurodomas tarpinis įrenginys tarp kliento ir serverio|| ||Location|| Nukreipimas į naują URL vietą siejamą su nurodytu dokumentu|| ||Server|| Serverio išsiuntusio atsaką parametrai|| '''Atsako būsenos kodai''' ||Būklės kodas|| Būsenos reikšmė|| Apibrėžimas|| ||10x|| Information message|| Šie kodai nėra naudojami HTTP 1.0 protokolo versijoje|| ||20x|| Success|| Šie kodai nurodo sėkmingą duomenų apsikeitimo procesą|| ||200|| OK|| Užklausa buvo sėkmingai įvykdyta|| ||201|| CREATED|| Jis kodas gaunamas naudojam POST užklausos metodą. Kodas nurodo sėkmingą užklausos įvykdymą ir savo pagrindinėje atsako dalyje nurodo vietą kurioje turi būti talpinamas naujai sukurtas dokumentas|| ||202|| ACCEPTED|| Užklausa buvo priimta, po jos sekančios procedūra buvo neįvykdyta|| ||203|| PARTIAL INFORMATION|| Kai šis kodas gaunamas naudojant GET metodą, reiškia jog atsakas nebuvo pilnai įvykdytas|| ||204|| NO RESPONSE|| Serveris gavo užklausą, tačiau nėra pageidaujamos informacijos kuri būtų patalpinta į atsaką|| ||205|| RESET CONTENT|| Serveris liepia klientui ištrinti formos laukelių turinį|| ||30x|| Redirection|| Šie kodai nurodo, kad pageidaujamų dokumentų nebėra nurodytoje vietoje|| ||301|| MOVED|| Užklausos duomenys buvo persiųsti į naują adresą|| ||302|| FOUND|| Pageidaujami duomenys buvo perkelti į naują URL adresą, kuriame jų dabar nerandama|| ||303|| METHOD|| Klientas turi mėginti siųsti užklausą kitu adresu. Taip pat siūloma pakeisti užklausos metodą|| ||40x|| Error due to the client|| Šie kodai nurodo jog buvo neteisingai suformuluota užklausa|| ||400|| BAD REQUEST|| Neteisingai suformuluota užklausa|| ||401|| UNAUTHORIZED|| Užklausos parametrai neatitinka identifikacijos. Klientas turi performuluoti užklausą|| ||402|| PAYMENT REQUIRED|| Klientas turi performuluoti užklausą su teisingais apmokėjimo duomenimis|| ||403|| FORBIDDEN|| Priėjimas prie duomenų draudžiamas|| ||404|| NOT FOUND|| Nurodytu adresu serveris nerado jokių duomenų|| ||50x|| Error due to the server|| Šie kodai informuoja, kad serveriui iškilo vidinių klaidų|| '''HTTP protokolo versijos''' * '''HTTP 0.9''' Nebepalaikoma. Palaiko tik GET užklausą. Nepalaiko antraščių (HEADERS). Kadangi nepalaikomas POST metodas, klientas serveriui gali perduoti labai mažai informacijos. * '''HTTP 1.0''' Vis dar labai plačiai naudojama, ypač proxy serverių. Palaiko susijungimą aktyvų, todėl to paties susijungimo metu galima įvykdyti keletą užklausų/atsakymų. Tačiau tai veikia tik tada, kai jungiamasi ne per proxy serverius. Neišlaiko būsenos informacijos. * '''HTTP 1.1''' Einamoji protokolo versija. Pagal nutylėjimą palaiko aktyvius susijungimus, kurie puikiai veikia ir jungiantis per proxy serverį. Leidžia išsiųsti keletą užklausų vienu metu, taip pagreitinant duomenų persiuntimą vartotojui. Įmanoma identifikuoti host vardą. Naršyklė siunčia Host: www.xxx.com protokolo antraštėje (HEADER) kiekvienoje užklausoje. Tai pagreitina susisiekimą, jeigu įrenginyje yra paleisti keli virtualūs tinklo serveriai. Naudojant šį protokolą, turinys gali būti pateikiamas įvairiais formatais: PostScript, PDF, arba kaip paprastas tekstas. [[HTTPS]] yra saugi HTTP versija. ##Plačiau paaiškinkite terminą, juo nusakomo objekto svarbą, veikimo principą ir t.t. ---- == Naudota literatūra == . http://lt.wikipedia.org/wiki/HTTP . http://www.spauda.lt/java/apiehttp.htm . http://os.pit.ktu.lt/~sauga/pratybos/http_metodai.ppt . http://en.kioskea.net/contents/internet/http.php3 ---- . CategoryŽodis