Ko v brskalnik vpišemo naslov spletne strani, se v ozadju zgodi "pogovor" med našim računalnikom in strežnikom. Ta pogovor poteka po pravilih protokola HTTP — HyperText Transfer Protocol. Vsak zahtevek, ki ga pošljemo, ima svojo metodo, ki pove strežniku, kaj želimo narediti. Najpomembnejši štirje so GET, POST, PUT in DELETE.
Kaj je HTTP
HTTP je protokol za prenos podatkov med odjemalcem (brskalnikom) in strežnikom. Deluje po principu zahtevek–odgovor: odjemalec pošlje zahtevek, strežnik pa vrne odgovor. Vsak zahtevek vsebuje metodo, naslov vira (URL) in morebitne podatke. Odgovor pa vsebuje statusno kodo (npr. 200 za uspeh ali 404 za neobstoječo stran) in vsebino.
GET /index.html HTTP/1.1 Host: vadnica.org HTTP/1.1 200 OK Content-Type: text/html (vsebina strani ...)
GET: branje podatkov
Metoda GET pridobi podatke s strežnika. Uporablja se za obisk strani, nalaganje slik, iskanje po spletu — za vse, kar beremo. Parameter GET ne spreminja podatkov na strežniku, zato je varno osveževati takšne strani. Podatki, ki jih pošiljamo (npr. iskalni niz), se pošljejo kar v naslovu URL-ja.
GET /iskanje?q=http+vadnica HTTP/1.1 Host: vadnica.org
POST: oddaja podatkov
Metoda POST pošlje podatke na strežnik — najpogosteje iz obrazca (form). Ko vpišemo uporabniško ime in geslo ter kliknemo Prijava, brskalnik pošlje POST zahtevek s podatki v telesu zahteve, ki ga ni videti v naslovu URL. POST tipično ustvarja nove zapise ali sproži obdelavo na strežniku.
POST /prijava HTTP/1.1 Host: vadnica.org Content-Type: application/x-www-form-urlencoded uporabnisko_ime=ime&geslo=skrivnost
PUT: posodobitev podatkov
Metoda PUT posodobi obstoječe podatke na strežniku. Uporablja se predvsem pri API-jih: če želimo spremeniti podatke o uporabniku, pošljemo PUT zahtevek s celotno novo vsebino zapisa. Za razliko od POST, ki lahko vsakič ustvari nov zapis, PUT vedno cilja na točno določen vir in ga prepiše.
PUT /uporabniki/42 HTTP/1.1
Host: vadnica.org
Content-Type: application/json
{"ime": "Ime", "email": "ime@mail.si"}
DELETE: brisanje podatkov
Metoda DELETE pošlje strežniku zahtevo, naj izbriše določen vir. Tako kot PUT se uporablja predvsem pri API-jih in vedno cilja na točno določen vir, npr. enega uporabnika ali en zapis.
DELETE /uporabniki/42 HTTP/1.1 Host: vadnica.org
Primerjava metod
| Metoda | Namen | Primer uporabe |
|---|---|---|
| GET | Branje podatkov | Obisk spletne strani, iskanje |
| POST | Oddaja podatkov, ustvarjanje | Prijava, registracija, komentar |
| PUT | Posodobitev podatkov | Sprememba profila uporabnika |
| DELETE | Brisanje podatkov | Odstranitev zapisa |
HTTP v praksi
Te štiri metode tvorijo osnovi t. i. REST API, prek katerih si aplikacije izmenjujejo podatke. Predstavljamo si lahko knjižnico: GET, ki pomeni izposojo knjige, POST dodajanje nove knjige, PUT popravljanje obstoječe, DELETE pa odstranitev s police. Vsak dober API sledi temu logičnemu razdeljevanju nalog, zato je razumevanje metod ključno za vsakega spletnega razvijalca.
Vsa komunikacija, ki jo povprečni uporabnik sproži vsak dan — od odpiranja strani do prijave v spletno banko — poteka po teh pravilih. HTTP je tihi delavec interneta, ki brez težav opravlja milijarde zahtevkov na sekundo.