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 GET zahtjeva može izgledati kao "GET.php?parameter=value", dok bi URL za POST zahtjev izgledao kao "POST.php", a zatim bi u tijelu zahtjeva bio postavljen "parametar=value".
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 posebno važno za obrasce koji sadrže osjetljive podatke kao što su lozinke ili PII (Personally Identifiable Information), jer korištenje POST-a znači da se te informacije ne prijavljuju na web poslužiteljima.
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 u usporedbi 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. Osobito je važno za osjetljive obrasce kao što su obrasci za prijavu jer bi ovaj zahtjev zabilježen otkrio korisničku lozinku, a ako je odgovor predmemorirala treća strana, mogao bi dopustiti drugim korisnicima da se prijave na korisnički račun.