This is an old revision of the document!
Table of Contents
HTTP
HTTP (Hypertext transfer protocol) je protokol kojeg web preglednici (engl. browsers) koriste za komunikaciju sa web sjedištima (engl. websites).
HTTP zahtjev
HTTP zahtjev je poruka koju web preglednik šalje nekom poslužitelju kako bi dohvatio sadržaj potreban za učitavanje i prikaz određene stranice. Poruke HTTP protokola imaju dobro definiranu i standariziranu formu, informacije i podatke koje sadrže i oblik poruke.
Među najvažnijim informacijama i djelovima HTTP zahtjeva, koji svaki HTTP zahtjev sadrži su: HTTP verzija, HTTP metoda, HTTP zaglavlja (eng. headers), tijelo zahtjeva i URL resursa (npr. slike, teksta, web forme i slično) kojem se želi pristupiti.
HTTP metode
Unutar svakog HTTP zahtjeva koristi se neka HTTP metoda kojom je definirano koju akciju treba izvesti nad određenim resursom. Najvažnije i najčešće korištene metode su GET, POST, PUT, DELETE i HEAD.
HEAD metoda dohvaća samo zaglavlja (eng. headers) odgovora u kojima su sadržani metapodatci o resursu, npr. veličina resursa i dostupnost resursa na poslužitelju. Ova metoda se koristi kada želimo dohvatiti i provjeriti određene podatke, bez da dohvaćamo cijeli resurs koji ponekad može biti zahtjevan za preuzimanje. Zaglavlja odgovora su ista kao što bi bila u slučaju da se koristi GET metoda, ali HTTP odgovor ne sadrži tijelo.
GET metodom se dohvaća uzorak željenog resursa (npr. GET /index.html). U pravilu GET metodom se isključivo dohvaćaju traženi podatci te se ne vrše nikakve izmjene u aplikaciji. Odgovor se sastoji od zaglavlja i od tijela odgovora u kojem su sadržani traženi podatci. POST metoda služi za izmjenu ili stvaranje podataka na poslužitelju. Unutar tijela zahtjeva, sadržane su informacije pomoću kojih se stvaraju ili mijenjaju traženi resursi. Važno je da informacije u tijelu semantički odgovaraju resursu kojeg treba stvoriti ili promijeniti (npr. tijelo zahtjeva: ime=ivica&prezime=ivić&ID=27). U svakodnevnom korištenju, to nije problem za korisnika, s obzirom na to da se unutar uzorka podataka koji se dohvaćaju GET metodom uobičajeno već nalaze forme koje ispunjavanjem i podnošenjem automatski generiraju POST zahtjev i šalju ga na poslužitelj.
DELETE metodom se zahtjeva brisanje određenog resursa na poslužitelju.
PUT metodom se zahtjeva izmjena ili stvaranje određenog resursa. Za razliku od POST metode,PUT metoda je idempotentna. Zvanjem iste PUT metode više puta za redom nakon prve promjene, naknadni zahtjevi PUT metode neće vršiti izmjene, dok slanjem više POST zahtjeva za redom, izmjene mogu biti izvršene svaki puta, npr. dodavanje istog komenara više puta.
PRIMJER Demonstracija HTTP metoda alatom Curl
Na terminalu na linuxu ili iz cmd-a na Windowsu pokrećemo curl naredbe redom.
--head https://platforma.hacknite.hr/
Ova naredba dohvaća samo zaglavlja HTTP odgovora s navedene stranice.
https://platforma.hacknite.hr/.
Za izvršavanje GET metode nisu potrebne nikakve opcije jer curl standardno koristi HTTP GET metodu kada se ne navedu druge opcije. U rezultatu ispod primjećujemo da se izvršenjem GET metode dohvaća HTML web stranice. U terminalu/cmd-u je stoga prikazan isti onaj HTML kojeg bi web preglednik prikazao.