Qual è la differenza tra HTTP GET e HTTP POST?

Questo modulo contiene informazioni potenzialmente sensibili, quindi è necessario utilizzare POST, non GET.

OTTIENI POST

A rigor di termini, la differenza tra GET e POST sta nel modo in cui le applicazioni vengono trasferite. Le informazioni in GET vengono trasmesse nell'URL. Se hai mai visto un URL che include punti interrogativi e simboli unione, cercavi una richiesta GET: example.com/request.php?var1=foo&var2=bar è una stringa GET che codifica la variabile "var1" come "foo" e la variabile "var2" come "bar". Le informazioni POST sono incluse nel corpo della richiesta e non sono visibili nella stringa dell'URL (e quindi non sono visibili all'utente).

Linee guida formali

Formalmente, le linee guida HTML dicono che GET dovrebbe essere usato per richieste "idempotenti" o richieste che non cambiano nulla. Ad esempio, immagina una pagina Web che restituisce il meteo locale: "example.com/weather.php?zipcode=12345". L'atto di presentare questa richiesta ancora e ancora non cambia nulla. Il POST dovrebbe essere usato per applicazioni che non sono idempotenti. Ad esempio, supponi di effettuare un acquisto con la tua carta di credito. Presentare questa richiesta più e più volte potrebbe portare a cambiamenti abbastanza grandi. Poiché la reinvio di una richiesta POST ha delle conseguenze (anche se sono minori), i browser Web di solito visualizzano una richiesta affinché l'utente confermi di voler realmente inviare nuovamente il modulo di richiesta.

Vantaggi di GET

GET ha una serie di vantaggi rispetto al POST. Poiché GET è codificato come parte di un URL, puoi tagliare e incollare l'URL e condividerlo con altre persone. Anche le richieste GET possono essere contrassegnate. Se controlli periodicamente l'ora, puoi aggiungere "esempio.com/weather.php?zipcode=12345" alla barra "Preferiti" del tuo browser, quindi quando fai clic su quel link, carichi automaticamente la tua pagina meteo personalizzata. Poiché le richieste GET sono visibili (e modificabili) dall'utente, possono essere anche piratate. Ad esempio, se il sito meteo non offre un modo ovvio per modificare la posizione della richiesta meteo, è possibile modificare manualmente "12345" in "99762" per guardare il tempo in Nome, Alaska invece del tempo a Schenectady.

Quando usare il POST

Anche in situazioni che sono idempotenti, il POST ha usi chiari occasionali. Alcuni di questi sono basati sulla sicurezza o sulla legalità. Le variabili GET vengono trasmesse "in chiaro", poiché non si desidera inviare informazioni su carte di credito, numeri di previdenza sociale, password o informazioni riservate degli utenti tramite GET. Poiché i dati POST diventano più scuri, è preferibile in quelle situazioni. Il POST viene anche utilizzato per la trasmissione di grandi quantità di dati, anche se i dati non sono sensibili. Tecnicamente, gli URL (e quindi le variabili GET) possono avere una lunghezza illimitata. Tuttavia, poiché molti browser limitano quanto spazio può avere un URL, GET è generalmente considerato adeguato solo per richieste relativamente brevi.