Koja je razlika između objave i primanja zahtjeva?

GET i POST su dvije najčešće korištene metode HTTP zahtjeva. Obično se GET zahtjevi koriste za traženje web-stranica, dok se POST koristi za slanje podataka web-poslužitelju, primjerice putem web-obrasca.

Savjet: iako se zovu HTTP metode, i GET i POST se također koriste u HTTPS-u.

Jedna od važnih razlika je da su svi parametri uključeni u GET zahtjeve uključeni u sam URL, dok su parametri u POST zahtjevima dio tijela zahtjeva.

Na primjer, URL zahtjeva GET može izgledati kao „GET.php? parameter=value" dok bi URL za POST zahtjev izgledao kao "POST.php", a zatim bi imao "parameter=value" postavljen u tijelu zahtjeva.

Jedna od ključnih posljedica ovoga je da kada web poslužitelji zabilježe zahtjeve, traženi URL se uvijek bilježi. Dakle, za GET zahtjeve, parametri se također zapisuju, u slučaju POST zahtjeva, iako se vrijednosti ne bilježe jer tijelo zahtjeva nije zabilježeno. To je osobito važno za obrasce koji sadrže osjetljive podatke kao što su lozinke ili PII (Podaci koji otkrivaju identitet), budući da korištenje POST-a znači da se te informacije ne prijavljuju web poslužitelji.

Ostale razlike između GET-a i POST-a uključuju činjenicu da se GET zahtjevi mogu predmemorirati u pregledniku ili predmemoriji trećih strana, GET zahtjevi su uključeni u povijest preglednika i mogu biti označeni. POST zahtjevi za usporedbu nikada se ne spremaju u predmemoriju, ne spremaju se u povijest preglednika i ne mogu se označiti.

Moguće je konfigurirati obrasce da koriste GET zahtjev za slanje podataka na web poslužitelj, ali to je loša ideja jer svi ovi čimbenici dolaze u igru. Posebno je važno za osjetljive obrasce kao što su obrasci za prijavu jer bi taj zahtjev zabilježio otkriti korisničku lozinku, a ako je odgovor predmemorirala treća strana, to bi moglo dopustiti drugim korisnicima da se prijave na korisnikovu račun.