Vad är skillnaden mellan posta och få förfrågningar?

click fraud protection

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 URL för GET-förfrågan se ut som "GET.php? parameter=värde” medan URL: en för en POST-förfrågan skulle se ut som “POST.php” och sedan ha “parameter=värde” inställt 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änsliga uppgifter som lösenord eller PII (Personligt identifierbar information), eftersom användning av POST innebär att denna information inte loggas in 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 det avslöja användarens lösenord, och om svaret cachades av en tredje part kan det låta andra användare logga in på användarens konto.