GET og POST er de to mest brukte HTTP-forespørselsmetodene. Vanligvis brukes GET-forespørsler til å be om nettsider, mens POST brukes til å sende data til webserveren, for eksempel gjennom et nettskjema.
Tips: Selv om de kalles HTTP-metoder, brukes både GET og POST også i HTTPS.
En av de viktige forskjellene er at alle parametere som er inkludert i GET-forespørsler er inkludert i selve URL-en, mens parametere i POST-forespørsler er en del av forespørselskroppen.
For eksempel kan en GET-forespørsels-URL se ut som "GET.php? parameter=verdi», mens URL-en for en POST-forespørsel vil se ut som «POST.php» og deretter ha «parameter=verdi» satt i forespørselsteksten.
En av de viktigste konsekvensene av dette er at når webservere logger forespørsler, blir den forespurte URL-en alltid logget. Så, for GET-forespørsler, blir parameterne også logget, i tilfelle POST-forespørsler, selv om verdiene ikke logges ettersom forespørselens brødtekst ikke er logget. Dette er spesielt viktig for skjemaer som inneholder sensitive data som passord eller PII (Personlig identifiserbar informasjon), ettersom bruk av POST betyr at denne informasjonen ikke blir logget på webservere.
Andre forskjeller mellom GET og POST inkluderer det faktum at GET-forespørsler kan bufres av nettleseren eller tredjeparts cacher, GET-forespørsler er inkludert i nettleserhistorikken og kan bokmerkes. POST-forespørsler i sammenligning bufres aldri, lagres ikke i nettleserloggen og kan ikke bokmerkes.
Det er mulig å konfigurere skjemaer til å bruke en GET-forespørsel for å sende data til webserveren, men å gjøre det er en dårlig idé ettersom alle disse faktorene spiller inn. Det er spesielt viktig for sensitive skjemaer som påloggingsskjemaer, da hvis denne forespørselen ble logget, ville den avsløre brukerens passord, og hvis svaret ble bufret av en tredjepart, kan det la andre brukere logge på brukerens regnskap.