GET e POST

Ultimamente sto leggendo e studiacchiando alcuni manuali di Ajax, e in più di uno ho trovato questa distinzione tra i metodi GET e POST che si usano per comunicare con il Server negli script.
**
GET serve per ottenere delle cose;**
POST serve per fare delle cose;

In particolare dalle specifiche HTTP si capisce che GET serve per recuperare dei dati, mentre POST serve per interagire con il server in modo da modificarne lo stato.

Non avevo mai pensato a distinguerli in questo modo, avevo sempre ragionato solo sulla differenza che i due metodi usano per inviare i parametri al server.
• nel metodo GET i dati vengono accodati all’indirizzo della pagina richiesta, facendo seguire il nome della pagina da un punto interrogativo e dalle coppie nome/valore dei dati vengono mandati che ci interessano.
• nell metodo POST, i dati vengono invece inviati in maniera da non essere direttamente visibili per l’utente, attraverso la richiesta HTTP che il browser invia al server.

Ciò dava come termine di scelta il fatto che si volesse un indirizzo lungo con i parametri visibili, o un indirizzo corto senza parametri accodati (che si risolveva con una scelta molto soggettiva).
Il Problema di GET può essere che alcuni Browser e Server limitano la lunghezza dell’URL, quindi troppi parametri non vanno bene, ma alla fine un metodo valeva l’altro…

Con questa divisione invece si ha una più chiara concezione di quando usare uno o l’altro.
Un problema che si può verificare nell’usare GET per modificare lo stato del server è questo:
Usando Get per Cancellare un record per esempio, si corre il rischio che se nel Browser è installato Google Accelerator, i dati vengano cancellati, senza che l’utente lo voglia.
37signals si accorse di questo problema quando i suoi utenti cominciarono a lamentarsi perchè i loro dati erano spariti.

Trovandomi d’accordo d’ora in poi mi impegnerò a usare questa distinzione nelle mie applicazioni.

Gabba Gabba Hey
Bonzo