5.1 HTTP protokol

HTTP (Hypertext Transfer Protocol) je protokol aplikacijske razine koji omogućava prijenos datoteka koje u sebi sadrže veze na druge dokumente. Takvi dokumenti označavaju se kao hipertekst, a veze koje sadrže nazivaju se hipertekstualne veze (engl. hyperlinks). Primjenjuje se od 1990. godine pojavom usluge interneta WWW - World Wide Web.

HTTP 1.0 verzija protokola definirana je u dokumentu RFC 1945, a HTTP 1.1 u RFC 2068. Temelji se na modelu klijent - poslužitelj, a za prijenos podataka zahtijeva pouzdanu vezu na prijenosnoj razini, ali se ne vezuje uz određeni protokol, već dopušta u budućim primjenama i neki drugi protokol osim TCP-a. Standardno je priključna točka na kojoj sluša web poslužitelj 80, ali se može definirati drugačije. HTTP 1.0 protokol definira otvaranje odvojenih TCP veza za prijenos svakog dokumenta. Na primjer, HTML dokument koji poziva dvije slike unutar stranice izazvat će otvaranje dvije nove TCP veze od klijenta prema poslužitelju.

Prema HTTP 1.1 između klijenta i poslužitelja uspostavlja se stalna HTTP veza, koja se koristi za razmjenu podataka više zahtjeva između klijenta i poslužitelja. Na taj način se štedi procesorsko vrijeme poslužitelja, smanjuje nepotreban promet i umanjuje mogućnost pojave zagušenja. HTTP protokolom definira se, između ostalog:

  1. Forma komunikacije između klijenta i poslužitelja, tj. način postavljanja upita i odgovora i njihov format
  2. Kodiranje znakova karakterističnih za brojne jezike (engl. character set)
  3. Kodiranje sadržaja (engl. content coding)
  4. Pristup dokumentima za različite tipove protokola
  5. Pristup dokumentima uz provjeru identiteta (autorizacija i autentikacija)
  6. Pohrana dokumenata u privremenu memoriju (engl. caching)
  7. Sigurnosne aspekte - osjetljive točke u komunikaciji između klijenta i poslužitelja, odnosno, u procesu dostave podataka korisniku.

U nastavku su pojašnjene prve četiri točke koje definira HTTP protokol.

Klijent-poslužitelj model HTTP protokola - HTTP poslužitelj (web poslužitelj) prima zahtjeve klijenata za dokumentima koje posjeduje. Svaki dokument kojim poslužitelj raspolaže opisan je s nekoliko parametara: Identifikator (URI - Uniform Resource Identifier), adresa (URL - Uniform Resource Locator) i naziv (URN - Uniform Resource Name). Na osnovu njih poslužitelj odlučuje na koji će način odgovoriti na postavljeni zahtjev. Zahtjev klijenta sadrži naredbu koja definira željenu akciju (GET, POST, DELETE,...), adresu dokumenta, verziju HTTP protokola, te odgovarajuća zaglavlja kroz koja su definirani parametri klijenta. Odgovor poslužitelja na zahtjev sastoji se najprije od odluke hoće li prihvatiti komunikaciju s klijentom i uspostaviti vezu ili ne. U slučaju pozitivne odluke na zahtjev za podacima (GET), poslužitelj šalje odgovor klijentu koji se sastoji od zaglavlja i podataka. Zaglavlje prethodi informaciji namijenjenoj korisniku, a sadrži parametre o samom poslužitelju, o podacima i klijentu. Primljene podatke klijent prihvaća, izdvaja informacije namijenjene korisniku i prezentira mu ih. Umjesto podataka, klijent može dobiti obavijest o pogrešci, kojoj uzrok može biti na strani klijenta ili na strani poslužitelja. Najčešće poruke o pogrešci su "Datoteka nije pronađena" (404 - File not found) ili "Pristup dokumentu nije dopušten" (403 - Forbidden).

Kodiranje znakova (engl. character set) - HTTP koristi MIME definiciju skupa znakova i omogućava razmjenu dokumenata koji sadrže znakove različitih svjetskih jezika definiranjem skupa znakova primijenjenog u dokumentu. Kodiranje znakova se primjenjuje kako bi se slijed okteta mogao ispravno protumačiti kao slijed znakova. Oznake skupova znakova definira IANA. Ako nije navedena oznaka za tip znakova, podrazumijeva se ISO-8859-1. Znakovlje hrvatskog jezika definirano je kao ISO-8859-2. Danas se najčešće koristi UTF-8.

Označavanje sadržaja (engl. content codings) - Označavanjem sadržaja HTTP protokol omogućava ukazivanje na transformaciju primijenjenu nad podacima, kao što je komprimiranje (npr. zip, rar, ...), ili kriptiranje. Time se postiže opis sadržaja koji nije čisti ASCII tekst, kao što su datoteke generirane nekim od programa (npr. doc, ppt, xls, pdf, ...).

Prijenos podataka različitih protokola - HTTP protokol omogućava komunikaciju između drugih protokola, kao što su SMTP (za razmjenu elektroničke pošte), NNTP (Usenet), FTP (prijenos datoteka) i sl. Ovim je omogućena dostupnost najčešće korištenih mrežnih usluga uporabom samo web preglednika (npr. Firefox) U slučaju kada se HTTP protokolom prenose informacije drugih protokola, primjenjuje se ili postupak tuneliranja (gdje se informacije prosljeđuju, bez analize o kojem se protokolu radi), ili postupak prevođenja kojeg obavljaju poveznici (engl. gateway). U takvim slučajevima, veza između klijenta i poslužitelja odvija se preko posrednika. Posrednik može biti i proxy poslužitelj, koji ima ulogu rasterećenja prometa od poslužitelja na lokalnoj mreži prema ostatku interneta. Klijent postavlja zahtjev proxy poslužitelju koji provjerava sadrži li traženu informaciju u svom međuspremniku (engl. cache) i ako je pronađe vraća je natrag klijentu. Ako nema traženu informaciju, proxy poslužitelj umjesto klijenta postavlja upit web poslužitelju. Odgovor web poslužitelja prosljeđuje korisniku koji je postavio zahtjev, ali ga proxy poslužitelj pohranjuje i u svoj međuspremnik, kako bi pri sljedećem upitu postigao brži odziv. Protokol za pristup dokumentu, poslužitelj, kao i mjesto dokumenta na poslužitelju definira jedinstvena adresa dokumenta - URL.

Aplikacijska razina Aplikacijska razina DNS sustav
Sadržaj