Gli ultimi tutorial di sviluppo web
 

Metodi HTTP: GET vs POST


I due metodi HTTP più utilizzati sono: GET e POST.


Che cosa è HTTP?

L'Hypertext Transfer Protocol (HTTP) è progettato per consentire le comunicazioni tra client e server.

HTTP funziona come un protocollo di richiesta-risposta tra un client e un server.

Un browser web può essere il cliente, e di una applicazione su un computer che ospita un sito web può essere il server.

Esempio: Un client (browser) invia una richiesta HTTP al server; quindi il server restituisce una risposta al client. La risposta contiene informazioni sullo stato della richiesta e può anche contenere il contenuto richiesto.


Due Richiesta metodi HTTP GET e POST:

Due metodi comunemente usati per una richiesta-risposta tra un client e server sono: GET e POST.

  • GET - richieste di dati da una risorsa specificata
  • POST - i dati non adduca da elaborare a una risorsa specificata

Il metodo GET

Si noti che la stringa di ricerca (coppie nome / valore) viene inviato nella URL di una richiesta GET:

/test/demo_form.asp?name1=value1&name2=value2

Alcuni altri note su richieste GET:

  • GET richieste possono essere memorizzati nella cache
  • GET richieste rimangono nella cronologia del browser
  • GET richieste possono essere contrassegnate
  • GET richieste non dovrebbero mai essere utilizzati quando si tratta di dati sensibili
  • GET richieste hanno limiti di lunghezza
  • GET richieste devono essere usati solo per recuperare i dati

Il metodo POST

Si noti che la stringa di ricerca (coppie nome / valore) viene inviato nel corpo del messaggio HTTP di una richiesta POST:

POST /test/demo_form.asp HTTP/1.1
Host: w3ii.com
name1=value1&name2=value2

Alcuni altri note su richieste POST:

  • richieste POST non vengono mai memorizzate nella cache
  • richieste POST non rimangono nella cronologia del browser
  • richieste POST non possono essere contrassegnate
  • richieste POST non hanno restrizioni sulla lunghezza dei dati

Confronto GET vs POST

La tabella seguente mette a confronto i due metodi HTTP: GET e POST.

OTTENERE INVIARE
tasto BACK / ricarica innocuo I dati saranno nuovamente presentate (il browser dovrebbe avvertire l'utente che i dati stanno per essere ri-presentata)
segnalibro Può essere segnalibro Non può essere segnalibro
Copia cache Possono essere memorizzate nella cache non cache
tipo di codifica application / x-www-form-urlencoded application / x-www-form-urlencoded o multipart / form-data. Utilizzare la codifica multipart per i dati binari
Storia I parametri rimangono nella cronologia del browser I parametri non vengono salvati nella cronologia del browser
Restrizioni lunghezza dei dati Sì, quando l'invio dei dati, il metodo GET aggiunge i dati all'URL; e la lunghezza di un URL è limitata (lunghezza massima URL è di 2048 caratteri) Senza restrizioni
Restrizioni al tipo di dati Solo i caratteri ASCII consentiti Senza restrizioni. dati binari sono anche permesso
Sicurezza GET è meno sicuro rispetto al POST perché i dati inviati sono parte dell'URL

Non usare mai GET per l'invio di password o altre informazioni sensibili!
POST è un po 'più sicuro di ottenere, perché i parametri non sono memorizzati nella cronologia del browser o nei log del server web
Visibilità I dati è visibile a tutti nella URL I dati non viene visualizzato nell'URL

Altri metodi di richiesta HTTP

La seguente tabella elenca alcuni altri metodi di richiesta HTTP:

metodo Descrizione
HEAD Uguale a ottenere, ma restituisce solo le intestazioni HTTP e nessun corpo del documento
PUT UPLOADS una rappresentazione della URI specificata
DELETE Elimina la risorsa specificata
OPTIONS Restituisce i metodi HTTP supportati dal server
CONNECT Converte la connessione richiesta di un tunnel TCP trasparente / IP