Presentation is loading. Please wait.

Presentation is loading. Please wait.

Dainius Četrauskas IFK

Similar presentations


Presentation on theme: "Dainius Četrauskas IFK"— Presentation transcript:

1 Dainius Četrauskas IFK-4 2006-11-08
HTTP protokolas Dainius Četrauskas IFK-4

2 HTTP protokolas. Hyper Transfer Protocol (HTTP) – tai programinio lygio protokolas naudojamas informacijos mainams žiniatinklyje (WWW). Pagrindinis šio protokolo tikslas buvo suteikti galimybę skelbti ir peržiūrėti HTML puslapius. Tarp paplitusių protokolų: FTP, NNTP, SMTP... HTTP protokolas yra dažniausiai naudojamas. HTTP protokolas pagrįstas užklausų/atsakymų apsikeitimu tarp kleinto ir serverio.

3 HTTP protokolo versijos
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ūvio/konteksto informacijos.

4 HTTP protokolo versijos
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’o vardą. Naršykė siunčia Host: protokolo galvutėje header kiekvienoje užklausoje. Tai pagreitina susisiekimą, jei mašinoje sukasi keli virtualūs web serveriai. Naudojant šį protokolą, turinys gali būti pateikiamas įvairiais formatais: PostScript, PDF, arba tiesiog kaip paprastas tekstas.

5 HTTP 1.1 pavyzdys $telnet Trying Connected to Escape character is '^]'. GET / HTTP/1.1 HOST: HTTP/ OK Cache-Control: private Content-Type: text/html Set-Cookie: PREF=ID=40bd7c2c921c6ab3:TM= :LM= :S=L3Pbcv7-v8RliRvc; expires=Sun, 17-Jan :14:07 GMT; path=/; domain=.google.lt Server: GWS/2.1 Transfer-Encoding: chunked Date: Tue, 07 Nov :32:10 GMT <html></html>

6 HTTP užklausų sintaksė
Kliento užklausos sintaksė: [METH] [REQUEST-URI] HTTP/[VER] [fieldname1]: [field-value1] [fieldname2]: [field-value2] ...

7 HTTP užklausų sintaksė
Kliento užklausos pavyzdys: GET / HTTP/1.1 Host: User-Agent: User-Agent: Opera/9.02 (Windows NT 5.1; U; en) Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain Accept-Language: en-us,en;q=0.5 Accept-Charset: ISO ,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Cookie: PREF=ID=5a52155dae6c60d6:TM= :LM= :S Cache-Control: max-age=0

8 HTTP užklausų sintaksė
Serverio atsakymo sintaksė: HTTP/ [VER] [CODE] [TEXT] Field1: Value1 Field2: Value2 ... [Dokumento turinys] Pirma eilutė rodo HTTP versiją, po to seka trijų skaitmenų skaičius(HTTP būklės kodas) ir priežąsties frazė, suprantama žmonėms. Dažnai tai būna kodas 200, kas reiškia viskas tvarkoje. Po pirmos eilutės seka eilė eilučių, vadinamų galvute, kuriose yra informacija apie dokumentą. Galvutės baigiasi tuščia eilute, po kurios seka dokumento turinys

9 HTTP serverio atsakymų kodai.
200: OK 201: Created 202: Accepted 203: Non-Authoritative Information 204: No Content 205: Reset Content 206: Partial Content 207: Multi-Status 400: Bad Request 401: Unauthorized 402: Payment Required 403: Forbidden 404: Not Found 405: Method Not Allowed 500: Internal Server Error 501: Not Implemented 502: Bad Gateway 503: Service Unavailable 504: Gateway Timeout

10 HEAD GET POST HTTP užklausų metodai
Panaudojus šią užklausą vykdoma beveik tokia pati operacija kaip ir naudojant GET užklausą, tačiau parsiunčiamas ne visas turinys, o tik <head></head> antraštė. Tai naudinga norinti pasiimti meta duomenis. GET Plačiausiai naudojamas metodas. Jį panaudojus, klientui parsiunčiamas nurodytas resursas. POST Iš HTML formos nusiunčia duomenis nurodytam šaltiniui.

11 PUT DELETE TRACE OPTIONS HTTP užklausų metodai
Nusiunčia serveriui nurodytą resursą. DELETE Ištrina nurodytą resursą. TRACE Nusiunčia atgal gautą užklausą. Tokiu būdu klientas gali matyti tarpinius serverius, per kuriuos keliauja užklausa. OPTIONS Sugražina metodų, kuriuos palaiko serveris, sąrašą. Gali būt naudojamas tikrinti serverio funkcionalumui.

12 CONNECT HTTP užklausų metodai
Šis metodas paprastai yra naudojamas sukurti tuneliuotam susijungimui, per kurį gali būti perduodamas šifruotas SSL srautas.

13 GET, HEAD POST, PUT, DELETE HTTP metodų saugumas
Šie metodai apibūdinami kaip saugūs, nes jie gali būti panaudoti tik informacijos gavimui iš serverio, nepadarant jokių pakeitimų pačiam serveryje. POST, PUT, DELETE Nesaugūs metodai. Jais gali būt išsiunčiami vartotojo duomenys, bei atliekami tam tikri pakeitimai web serveryje. Todėl rekomenduojama, kuriant tinklalapius tokius metodus atvaizduot ne kaip link’us, bet mygtukų pagalba, kad vartotojas suvoktų galimas pasekmes.

14 HTTP protokolas. GET metodas
GET metodas gali būti naudojamas tam tikrų užklausą nusakančių parametrų perdavimui. GET gali persiųsti serveriui nedidelį duomenų kiekį. Tai yra tais atvejais, kai užklausos URI nėra failas, o pavyzdžiui specifinė užklausa specifinei duomenų bazei. CGI scriptui irgi galima persiųsti duomenis naudojant GET užklausą; duomenys tokiu atveju yra nurodomi po ? simbolio. Pavyzdžiui: GET /path/script.cgi?field1=value1&field2=value2 HTTP/1.0 Tai “URL-encoded” duomenų pavyzdys. Tai naudojama esant nedideliems duomenų kiekiams. Kitais atv naudotinas POST metodas

15 HTTP protokolas. URL encoding.
URL specifikacija (RFC 1738, Dec. '94) pasižymi ta problema, kad ji riboja URL naudojamų ženklų kiekį tam tikra US-ASCII simbolių aibe: "...Only alphanumerics [0-9a-zA-Z], the special characters "$-_.+!*'()," [not including the quotes - ed], and reserved characters used for their reserved purposes may be used unencoded within a URL.“ HTML, iš savo pusės leidžia visą rinkinį simbolių, nusakomų ISO (ISO-Latin) HTML4 išplečia leidžiamus simbolius įtraukdama ir aibę Unicode character set. Ne-ISO simboliai (simboliai, kurių kodas virš FF hex/255 decimal iš Unicode grupės), nėra naudojami užduodant URL, kadangi nėra saugaus būdo, kuris leistų nusakyti simbolių rinkinį nusakant URL [RFC2396.] URL gali būti koduojami visur HTML dokumente, kada URL yra nurodoma importui kažkurio objekto (A, APPLET, AREA, BASE, BGSOUND, BODY, EMBED, FORM, FRAME, IFRAME, ILAYER, IMG, ISINDEX, INPUT, LAYER, LINK, OBJECT, SCRIPT, SOUND, TABLE, TD, TH, ir TR elementams.)

16 HTTP protokolas. URL encoding.
Character (Hex) Space 20 Quotation marks 'Less Than' symbol ("<") 'Greater Than' symbol (">") 22 3C 3E 'Pound' character ("#") 23 Percent character ("%") 25 Misc. characters:    Left Curly Brace ("{")    Right Curly Brace ("}")    Vertical Bar/Pipe ("|")    Backslash ("\")    Caret ("^")    Tilde ("~")    Left Square Bracket ("[")    Right Square Bracket ("]")   Grave Accent ("`") 7B 7D 7C 5C 5E 7E 5B 5D 60

17 HTTP protokolas. URL encoding. Pavyzdys
bbb\ccc~bla “ “ -> %20 “\” -> %5C “~” -> %7E

18 Informacijos šaltiniai:
HTTP protokolas Informacijos šaltiniai:


Download ppt "Dainius Četrauskas IFK"

Similar presentations


Ads by Google