I metodi di richiesta HTTP spiegati

HTTP definisce nove metodi di richiesta standard, ma gran parte del traffico quotidiano ne usa solo alcuni. Questa tabella spiega ogni metodo, se è sicuro e idempotente e i codici restituiti da una chiamata riuscita.

Aggiornato:

MetodoScopoSicuro?Idempotente?Stato di successo
GETRetrieve a resourceYesYes200 OK
HEADRetrieve headers only, no bodyYesYes200 OK
POSTCreate a resource or trigger an actionNoNo201 Created
PUTReplace a resource entirelyNoYes200 OK / 204 No Content
PATCHApply a partial updateNoNo200 OK
DELETERemove a resourceNoYes200 OK / 204 No Content
OPTIONSCORS preflight; list allowed methodsYesYes204 / 200 OK
TRACEEcho the request back for diagnosticsYesYes200 OK
CONNECTOpen a tunnel, e.g. HTTPS via a proxyNoNo200 OK

Note

Domande frequenti

Qual è la differenza tra GET e POST?
GET recupera una risorsa senza effetti collaterali e può essere ripetuto in sicurezza; i parametri viaggiano nell'URL. POST crea qualcosa o attiva un'azione, può cambiare lo stato e non va ripetuto alla cieca.
Cosa significa che un metodo HTTP è sicuro?
Un metodo sicuro non modifica mai lo stato del server, quindi può essere chiamato senza rischi. GET, HEAD, OPTIONS e TRACE sono sicuri; POST, PUT, PATCH e DELETE no.
Qual è la differenza tra PUT e PATCH?
PUT sostituisce l'intera risorsa con ciò che invii; PATCH applica una modifica parziale solo ai campi scelti. PUT è idempotente, ripeterlo dà lo stesso risultato; PATCH in genere non lo è.
A cosa serve il metodo HEAD?
HEAD si comporta come GET ma non restituisce il corpo. Serve a verificare se una risorsa esiste, la sua dimensione o le intestazioni, senza scaricare tutto il contenuto.