Qual è la differenza tra HTTP GET e HTTP POST?

OTTIENI vs. 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 di unione, stavi cercando una richiesta GET: example.com/request.php?var1=foo&var2=bar è una stringa GET che codifica la variabile "var1" come "pippo" e la variabile "var2" come "bar". Le informazioni POST sono incluse nel corpo della richiesta e non sono visibili nella stringa URL (e quindi non sono visibili all'utente).

Linee guida formali

Formalmente, le linee guida HTML affermano che GET dovrebbe essere usato per richieste "idempotenti" o richieste che non cambiano nulla. Ad esempio, immagina una pagina Web che restituisca il clima locale: "esempio.com/weather.php?zipcode=12345". L'atto di inoltrare quella richiesta più e più volte non cambia nulla. Il POST deve essere utilizzato per richieste non idempotenti. Ad esempio, supponi di aver effettuato un acquisto con la tua carta di credito. Presentare ripetutamente la petizione potrebbe portare a cambiamenti abbastanza grandi. Poiché il reinvio di una richiesta POST ha conseguenze (anche se minori), i browser Web in genere fanno apparire una richiesta all'utente per confermare che desidera davvero reinoltrare il modulo di query.

Ottieni vantaggi

OTTENERE presenta numerosi vantaggi rispetto al POST. Poiché GET è codificato come parte di un URL, è possibile tagliare e incollare l'URL e condividerlo con altri. Le richieste GET possono anche essere contrassegnate. Se controlli periodicamente il tempo, potresti aggiungere "example.com/weather.php?zipcode=12345" alla barra "Preferiti" del tuo browser, quindi facendo clic su quel link carica automaticamente la tua pagina del tempo personalizzata. Poiché le richieste GET sono visibili (e modificabili) dall'utente, possono anche essere hackerate. Ad esempio, se il sito meteorologico non offre un modo ovvio per modificare la posizione della richiesta di tempo, è possibile modificare manualmente "12345" in "99762" per visualizzare il tempo a Nome, in Alaska invece del tempo a Schenectady.

Quando utilizzare POST

Anche in situazioni idempotenti, il POST ha occasionali usi chiari. Alcuni di questi sono basati sulla sicurezza o sulla legalità. Le variabili GET vengono trasmesse "in chiaro", poiché non si desidera inviare informazioni su carta di credito, numeri di previdenza sociale, password o informazioni riservate dell'utente tramite GET. Poiché i dati POST diventano più scuri, è preferibile in tali situazioni. Il POST viene utilizzato anche 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 lo spazio che può avere un URL, GET è generalmente considerato adeguato solo per richieste relativamente brevi.

Articoli Interessanti