Protocollo HTTP

Altri Metodi HTTP

Metodi HTTP HEAD, PUT, PATCH, DELETE e OPTIONS: caratteristiche, idempotenza e analisi delle richieste con DevTools.

Messaggi HTTP | Altri Metodi HTTP

Perché esistono altri metodi HTTP?

Concetto: operazioni sulle risorse   |   Contesto: API e servizi Web

Oltre a GET e POST, HTTP definisce metodi per richiedere solo informazioni di intestazione, creare o sostituire una risorsa, modificarla parzialmente, eliminarla o conoscere le operazioni supportate. Il metodo indica l’intenzione del client: il server decide se autorizzare e come gestire l’operazione.

Due proprietà da distinguere: un metodo è sicuro quando non richiede una modifica dello stato del server; è idempotente quando ripetere la stessa richiesta produce lo stesso effetto previsto sullo stato del server. Una risposta identica non è necessaria per avere idempotenza.
MetodoScopoSicuroIdempotente
HEADCome GET, ma senza corpo della rispostaSìSì
PUTCreare o sostituire la rappresentazione di una risorsaNoSì
PATCHApplicare modifiche parzialiNoNon garantito
DELETERichiedere la rimozione di una risorsaNoSì
OPTIONSRichiedere informazioni sulle opzioni di comunicazioneSìSì
Infografica riepilogativa dei metodi HEAD, PUT, PATCH, DELETE e OPTIONS
Schema illustrativo dei metodi HTTP e delle operazioni associate.

Esempi di richieste

Concetto: metodo e corpo   |   Contesto: API HTTP

Gli esempi seguenti rappresentano messaggi HTTP/1.1 illustrativi. Nelle connessioni HTTP/2 e HTTP/3 la codifica sul collegamento è differente, ma il significato del metodo rimane lo stesso.

HEAD /api/articoli/123 HTTP/1.1
Host: example.com

PUT /api/articoli/123 HTTP/1.1
Host: example.com
Content-Type: application/json

{"titolo":"Router","prezzo":49.90}

PATCH /api/articoli/123 HTTP/1.1
Host: example.com
Content-Type: application/json

{"prezzo":39.90}

DELETE /api/articoli/123 HTTP/1.1
Host: example.com

OPTIONS /api/articoli/123 HTTP/1.1
Host: example.com

PUT di norma sostituisce la rappresentazione della risorsa; PATCH applica una modifica secondo il formato concordato dall’API. Il solo utilizzo di JSON non definisce universalmente come applicare una PATCH: il comportamento dipende dall’endpoint.

Nota: un server può rispondere con 200 OK, 201 Created, 204 No Content oppure un errore, secondo il metodo e l’operazione. Per esempio 405 Method Not Allowed indica che il metodo non è supportato per quella risorsa; l’header Allow può indicare quelli ammessi.

Sicurezza e uso corretto

Concetto: autorizzazioni   |   Contesto: servizi Web

I metodi che modificano dati richiedono controlli lato server su autenticazione, autorizzazione e validità dell’input. HTTPS protegge i dati durante il trasporto, ma non sostituisce questi controlli. Non provare richieste PUT, PATCH o DELETE su siti o API di terzi senza autorizzazione.

LABORATORIO

Provare i metodi HTTP con DevTools

Inviare richieste a un endpoint didattico interno alla stessa pagina e osservare metodi, header e risposte.

Verifica dei concetti

Obiettivo: distinguere i metodi   |   Concetti: corpo, idempotenza, risposta

Seleziona una domanda per visualizzare la risposta e confrontarla con la tua.

1. Qual è la differenza tra PUT e PATCH? ▾
Risposta: PUT crea o sostituisce la rappresentazione della risorsa; PATCH applica modifiche parziali secondo le regole definite dall’API.
2. HEAD restituisce il corpo della risorsa? ▾
Risposta: No. Una risposta a HEAD non include un corpo, anche quando il server invia header che descrivono la rappresentazione.
3. Che cosa significa idempotente? ▾
Risposta: Ripetere una richiesta produce lo stesso effetto previsto sullo stato del server. PUT e DELETE sono definiti idempotenti; PATCH non lo è necessariamente.
4. Perché DELETE può rispondere con 204? ▾
Risposta: 204 No Content indica che la richiesta è stata gestita con successo senza restituire un corpo nella risposta.
5. A cosa serve OPTIONS? ▾
Risposta: A richiedere informazioni sulle opzioni di comunicazione disponibili per una risorsa o un server. Può essere usato anche nelle richieste preliminari CORS.
COLLEGAMENTO CON CHROME DEVTOOLS

Confronta i metodi HTTP attraverso i filtri di Network.

Apri la lezione del corso CHROME DEVTOOLS →