GET och POST är de två vanligaste metoderna för HTTP-begäran. Vanligtvis används GET-förfrågningar för att begära webbsidor medan POST används för att skicka data till webbservern, till exempel genom ett webbformulär.
Tips: Även om de kallas HTTP-metoder, används både GET och POST också i HTTPS.
En av de viktiga skillnaderna är att alla parametrar som ingår i GET-förfrågningar ingår i själva URL:en, medan parametrar i POST-förfrågningar är en del av förfrågningskroppen.
Till exempel kan en GET-begäran-URL se ut som "GET.php?parameter=värde" medan URL-adressen för en POST-begäran skulle se ut som "POST.php" och sedan ha "parameter=värde" inställd i förfrågningstexten.
En av de viktigaste följderna av detta är att när webbservrar loggar förfrågningar loggas den begärda URL:en alltid. Så för GET-förfrågningar loggas parametrarna också, i fallet med POST-förfrågningar, även om värdena inte loggas eftersom förfrågans brödtext inte loggas. Detta är särskilt viktigt för formulär som innehåller känslig information som lösenord eller PII (Personally Identifiable Information), eftersom användning av POST innebär att denna information inte loggas in på webbservrar.
Andra skillnader mellan GET och POST inkluderar det faktum att GET-förfrågningar kan cachelagras av webbläsaren eller tredjepartscachar, GET-förfrågningar ingår i webbläsarhistoriken och kan bokmärkas. POST-förfrågningar i jämförelse cachelagras aldrig, sparas inte i webbläsarhistoriken och kan inte bokmärkas.
Det är möjligt att konfigurera formulär för att använda en GET-förfrågan för att skicka data till webbservern, men att göra det är en dålig idé eftersom alla dessa faktorer spelar in. Det är särskilt viktigt för känsliga formulär som inloggningsformulär eftersom om denna begäran loggades skulle den avslöja användarens lösenord, och om svaret cachelagrades av en tredje part kan det låta andra användare logga in på användarens konto.