Poiché il metodo GET HTTP è specificato come idempotente, una richiesta GET, per specifica, può essere nuovamente inviata con l'assunzione che non cambierà nulla sul server. Questo non è il caso di un POST HTTP che, in base alle specifiche, può modificare lo stato dell'applicazione in esecuzione sul server.
Quindi, per specifica, è possibile eseguire un GET HTTP su una pagina N numero di volte senza preoccuparsi di cambiarne lo stato.
Il mancato rispetto delle specifiche potrebbe avere vari risultati indesiderati. Ad esempio, i crawler Web seguono la richiesta GET per indicizzare un sito, ma non POST. Se si consente a una richiesta HTTP GET di apportare modifiche al database, è possibile comprendere facilmente l'implicazione indesiderata che può avere.
Rispettare una specifica è come rispettare un accordo tra il vostro servizio o sito Web e una serie di consumatori diversi che possono essere i normali browser degli utenti, ma anche altri servizi come i web crawler.
È possibile creare un sito che utilizza un GET per inserire un record, ma è anche necessario prevedere che tutto ciò che è costruito per consumare il proprio sito funzioni con il presupposto che si stia rispettando l'accordo.
Come ultimo esempio, i browser Web avvisano gli utenti quando tentano di aggiornare una pagina che è stata raggiunta da un avviso di richiesta HTTP POST che alcuni dati potrebbero essere nuovamente inviati. Non si ottiene quel livello di protezione dei browser integrati se la pagina viene raggiunta da una richiesta HTTP GET.
Si può leggere di più qui: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
fonte
2013-08-23 05:59:10
C'è una ragione per cui vorresti farlo? –
Non so perché dovremmo seguire la regola precedente, se non seguiamo allora quali sono gli svantaggi? – Fooker
Convenzione. Prevedibilità. Perché dovresti guidare sul lato sinistro della strada (lato destro, negli Stati Uniti)? –