Mis vahe on taotluste postitamisel ja hankimisel?

GET ja POST on kaks kõige sagedamini kasutatavat HTTP päringu meetodit. Tavaliselt kasutatakse GET-päringuid veebilehtede pärimiseks, samas kui POST-i kasutatakse andmete saatmiseks veebiserverisse, näiteks veebivormi kaudu.

Näpunäide. Kuigi neid nimetatakse HTTP-meetoditeks, kasutatakse nii GET-i kui ka POST-i ka HTTPS-is.

Üks olulisi erinevusi on see, et kõik GET-päringutes sisalduvad parameetrid sisalduvad URL-is endas, samas kui POST-päringute parameetrid on osa päringu kehast.

Näiteks võib GET-i päringu URL välja näha selline: „GET.php? parameeter=väärtus”, samas kui POST-päringu URL näeb välja nagu „POST.php” ja seejärel päringu kehas on määratud „parameeter=väärtus”.

Selle üks peamisi tagajärgi on see, et kui veebiserverid logivad päringuid, logitakse taotletud URL alati. Seega logitakse GET-päringute puhul ka parameetrid, kuid POST-päringute puhul väärtusi ei logita, kuna päringu sisu ei logita. See on eriti oluline vormide puhul, mis sisaldavad tundlikke andmeid, nagu paroolid või isikut tõendavad andmed (Isiku tuvastatav teave), kuna POST-i kasutamine tähendab, et seda teavet ei logita sisse veebiserverid.

Muud erinevused GET-i ja POST-i vahel hõlmavad asjaolu, et GET-päringuid saab vahemällu salvestada brauser või kolmandate osapoolte vahemälu, GET-päringud kaasatakse brauseri ajalukku ja neid saab järjehoidjatesse lisada. Võrreldes POST-päringuid ei salvestata kunagi vahemällu, neid ei salvestata brauseri ajalukku ja neid ei saa järjehoidjatesse lisada.

Vorme on võimalik konfigureerida kasutama GET-päringut andmete veebiserverisse saatmiseks, kuid see on halb mõte, kuna kõik need tegurid tulevad mängu. See on eriti oluline tundlike vormide (nt sisselogimisvormid) puhul, sest kui see taotlus logitakse, avaldaks see kasutaja parool ja kui vastuse vahemällu salvestas kolmas osapool, võib see võimaldada teistel kasutajatel kasutajasse sisse logida. konto.