Kako radi HTTP tehnologija?

Kako radi HTTP tehnologija?

Objavljeno: 8 svibnja, 2025

Svako učitavanje stranice ili API poziv započinje HTTP zahtjevom od klijenta (npr. web preglednika) prema poslužitelju. Taj je zahtjev središnji dio klijentsko-poslužiteljske arhitekture weba.

Međutim, prije nego što poslužitelj uopće primi HTTP zahtjev, u pozadini se odvija nekoliko mrežnih koraka: najprije DNS pretraga (DNS lookup) prevodi naziv domene u IP adresu, zatim se uspostavlja TCP/IP veza.

Tek nakon tih koraka odvija se stvarni tijek HTTP zahtjeva i odgovora, pri čemu se podaci razmjenjuju u obliku mrežnih paketa. U ovom postu istražit ćemo svaku fazu tog procesa iza kulisa.

DNS razrješavanje: pronalaženje IP adrese poslužitelja

DNS (sustav domenskih imena) djeluje kao telefonski imenik Interneta, preslikavajući nazive domena (npr. example.com) u odgovarajuće IP adrese. Kada unesete URL, preglednik najprije provjerava svoju predmemoriju (i predmemoriju operativnog sustava) za poznatu IP adresu.

Ako je ne pronađe, šalje DNS upit DNS resolveru (rekurzivnom DNS poslužitelju, obično vašeg davatelja internetskih usluga). Postupak DNS razrješavanja obično uključuje:

  1. Upit resolveru – Resolver prima upit za domenu. Ako IP adresa nije lokalno predmemorirana, započinje potragu kroz DNS hijerarhiju.
  2. Korijenski i TLD poslužitelji – Resolver najprije pita korijenski DNS poslužitelj, koji ga usmjerava na TLD poslužitelj domene najviše razine (za ekstenzije poput .com, .org itd.).
  3. Autoritativni poslužitelj – Zatim resolver pita TLD poslužitelj za autoritativni DNS poslužitelj tražene domene i na njemu zatraži IP adresu domene.
  4. Dobivanje IP adrese – Autoritativni poslužitelj vraća traženu IP adresu, a DNS resolver prosljeđuje tu IP adresu natrag pregledniku.

Nakon što je naziv domene razriješen u IP adresu, preglednik može inicirati vezu prema toj IP adresi.

TCP/IP veza: trostruko rukovanje (three-way handshake)

Kad je IP adresa poznata, sljedeći korak klijenta je uspostaviti TCP/IP vezu s poslužiteljem (tipično na portu 80 za HTTP ili 443 za HTTPS).

TCP (Transmission Control Protocol) je pouzdani, povezani protokol koji radi iznad IP-a (Internet Protocol). TCP koristi trostruko rukovanje pri uspostavi veze. U tom rukovanju:

  • Klijent šalje SYN paket poslužitelju kao zahtjev za uspostavu veze.
  • Poslužitelj odgovara sa SYN-ACK paketom.
  • Klijent zatim šalje ACK paket za potvrdu uspostave.

Ova izmjena SYN → SYN-ACK → ACK osigurava da su obje strane suglasne komunicirati i sinkronizirane. Nakon rukovanja, TCP veza (socket) je otvorena. (Ako se koristi HTTPS, dodatno se obavlja TLS/SSL rukovanje radi osiguravanja šifrirane veze nakon uspostave TCP-a.)

IP protokol brine se o usmjeravanju tih paketa preko mreže do ispravnog odredišta.

Tijek HTTP zahtjeva i odgovora

Kad je TCP veza uspostavljena, preglednik šalje stvarni HTTP zahtjev. HTTP je aplikacijski protokol koji funkcionira po modelu zahtjev-odgovor.

HTTP zahtjev sastoji se od linije zahtjeva (metoda poput GET ili POST, traženi put URL-a i verzija HTTP-a), zatim zaglavlja zahtjeva, te po potrebi tijela (npr. za POST zahtjeve). Primjerice, GET zahtjev može izgledati ovako:

Ovim se od poslužitelja traži stranica /index.html. Poslužitelj potom obrađuje zahtjev i šalje natrag HTTP odgovor.

Odgovor započinje statusnom linijom (npr. HTTP/1.1 200 OK), sadrži zaglavlja odgovora (npr. tip sadržaja, duljinu, itd.), a zatim tijelo odgovora (sadržaj, poput HTML koda stranice).

Statusni kod 200 OK označava uspjeh; kodovi poput 404 Not Found označavaju pogreške. Kada klijent (preglednik) primi odgovor, može prikazati stranicu ili iskoristiti podatke prema potrebi.

Prijenos paketa i transport podataka

Iako HTTP definira sadržaj poruka, stvarni se podaci prenose internetom u obliku paketa.

Kada se šalje HTTP zahtjev ili odgovor, TCP ga dijeli na manje segmente, a zatim ih pakira u IP pakete za prijenos.

Svaki paket ima zaglavlje (koje uključuje izvorni i odredišni IP, protokol i redni broj paketa) te dio podatkovnog tereta (dio HTTP podataka).

Ti paketi prolaze kroz mrežne usmjerivače (rutere) kako bi stigli do odredišta. Paketi mogu stići neuredno (van izvornog redoslijeda), ali TCP ih uz pomoć rednih brojeva ponovno slaže u izvorno stanje.

TCP također osigurava pouzdanost: za svaki primljeni paket primalac šalje potvrdu (ACK); ako pošiljatelj ne dobije potvrdu za određeni paket, retransmira taj paket. Na taj način, čak i ako neki paketi budu izgubljeni putem, TCP-ov mehanizam ponovnog slanja jamči da će kompletni podaci ipak stići.

Kada svi paketi zahtjeva stignu na poslužitelj, ponovno se sastavljaju u izvornu poruku. Poslužitelj zatim generira odgovor, koji se na isti način (segmentiran u pakete) šalje natrag klijentu. Nakon što je razmjena dovršena, TCP veza se zatvara (osim ako je ostavljena otvorenom za ponovnu upotrebu).

Od trenutka kada u preglednik upišete URL do prikaza web stranice, u pozadini se odvija čitav niz radnji.

DNS pronalazi adresu poslužitelja, TCP/IP uspostavlja pouzdanu vezu kroz rukovanje, a HTTP prenosi zahtjev i odgovor – sve to putem paketa koji putuju mrežom. Razumijevanje ovih slojeva pomaže programerima u otklanjanju problema i optimizaciji performansi web aplikacija.

Novi web vas čeka

Pošaljite nam poruku i pretvorite posjetitelje vaše stranice u eure

Moja prva stranica

Pozdrav, svijete!

Ovo je moja prva web stranica. Saznajte više na mojoj web stranici.