GET o POST? Le due richieste HTTP più importanti a confronto
Con i moderni siti web interattivi i client, ossia i browser, non richiamano direttamente i documenti HTML dal server, piuttosto inviano le seguenti informazioni:
- il testo di una ricerca che l’utente ha digitato nel campo di ricerca
- i dati contenuti in un modulo compilato
- la scelta dei filtri per la visualizzazione di un negozio online
- l’ordine di un elenco
A disposizione per la trasmissione di informazioni di questo tipo al server ci sono diversi metodi di richiesta del protocollo HTTP. I due più importanti sono senza dubbio i metodi che portano il nome di GET e POST. Sebbene il risultato di entrambi sia lo stesso, i due metodi di ricerca si differenziano in maniera sostanziale. Leggete i seguenti capitoli per scoprire quale di questi due metodi fa più al caso vostro.
Se desiderate approfondire i vari metodi di ricerca più in generale, leggete il nostro articolo sulle richieste HTTP.
- Certificato SSL Wildcard incluso
- Registrazione di dominio sicura
- Indirizzo e-mail professionale da 2 GB
GET
Con il metodo GET i dati che devono essere inviati al server sono scritti direttamente all’interno dell’URL. Il risultato nel vostro browser apparirà così:
www.example.com/register.php?firstname=peter&name=miller&age=55&gender=male
Tutte le informazioni fornite dall’utente, quelli che sono definiti parametri URL, sono trasmesse tanto apertamente quanto l’URL stesso. Chiaramente questo porta con sé vantaggi e svantaggi:
Vantaggi del metodo di richiesta GET
I parametri URL possono essere salvati assieme all’indirizzo del sito web. Potete salvare una query come segnalibro, così da richiamarlo comodamente in seguito. All’evenienza la pagina può essere ripescata dalla cronologia del browser.
Questo risulta pratico, ad esempio, per riuscire ad aprire le mappe di Google Maps o per salvare i siti web con determinate impostazioni dei filtri e degli elenchi.
Svantaggi del metodo di richiesta GET
Lo svantaggio principale del metodo di richiesta GET è l’assenza di protezione dei dati. I parametri URL inviati assieme all’URL stesso non solo sono visibili da tutti nella barra degli indirizzi del browser, ma sono addirittura salvati nella cronologia, nella cartella cache e nel file log del browser senza essere precedentemente stati codificati.
Un secondo svantaggio del metodo GET è la sua capacità limitata. Nell’URL non possono essere inseriti più di poco più di 2.000 caratteri, in base al web server e al browser utilizzati. Inoltre, i parametri URL possono contenere solamente caratteri ASCII (lettere, numeri, caratteri speciali, ecc.), ma non dati binari come file audio o immagini.
POST
Il metodo POST scrive i parametri URL nella richiesta HTTP indirizzata al server, celandoli però alla vista dell’utente. Le richieste POST non prevendono un limite massimo di grandezza.
Vantaggi del metodo di richiesta POST
Se si tratta di trasmettere i dati sensibili al server, come, ad esempio, un modulo necessario per la registrazione con username e password, il metodo POST offre la discrezione necessaria. I dati non vengono né salvati nella cache, né compaiono nella cronologia del browser. Anche la flessibilità è un punto di forza del POST. Grazie a esso si possono trasmettere anche dati di qualsiasi tipo e ordine di dimensione, come foto o video, oltre naturalmente a brevi testi.
Svantaggi del metodo di richiesta POST
Quando nel browser si aggiorna la pagina di un sito web che contiene un modulo da compilare, ad esempio cliccando il pulsante indietro, i dati inseriti nel modulo vanno nuovamente inseriti e quindi trasmessi un’altra volta. Sicuramente vi sarà già capitato. Quando questo avviene, si rischia che i dati siano inviati più volte, cosa che può risultare particolarmente sconveniente se, ad esempio, il modulo che si sta compilando serve per effettuare un ordine online, scatenando così possibili ordini doppi. I programmi per gli shop online moderni sono in grado di impedire che ciò avvenga.
Allo stesso modo, i dati trasmessi con il metodo POST, non possono essere salvati come segnalibro assieme all’URL.
GET vs POST a confronto
GET | POST | |
---|---|---|
Visibilità dei dati | Visibili all’utente nella barra degli indirizzi del browser | Non visibili agli utenti |
Segnalibri e cronologia | I parametri URL sono salvati assieme all’URL | L'URL è salvato senza i parametri URL |
Cache e file log del server | I parametri URL sono salvati senza codifica | I parametri URL non sono salvati in automatico |
Comportamento quando si ricarica la pagina o si preme il pulsante “Indietro” | I parametri URL non sono inviati nuovamente | Il browser avvisa che i dati del modulo devono essere inviati nuovamente |
Tipo di dati | Solo caratteri ASCII | Caratteri ASCII e dati in codice binario |
Lunghezza dei dati | Limitato alla lunghezza massima consentita per l’url (2.048 caratteri) | Illimitato |
Quando utilizzare quale metodo
POST viene quasi sempre preferito quando l’utente deve inviare dati o file al server, ad esempio nel caso di moduli o per il caricamento online di file immagine.
GET è particolarmente adatto per la personalizzazione dei siti web: i termini di ricerca, le impostazioni dei filtri e l’ordine degli elenchi dell’utente possono essere salvati assieme all’URL come segnalibri, così che al prossimo accesso il sito web appaia esattamente così come lo si desidera.
Come regola generale, si può adottare la seguente:
- GET per le impostazioni di un sito web (filtri, elenchi, termini di ricerca e così via)
- POST per la trasmissione di dati e informazioni relativi all’utente.