DELETE
Metodo HTTP
Specifica del metodo HTTP DELETE
Il metodo DELETE richiede che il server di origine rimuova l'associazione tra la risorsa di destinazione e la sua funzionalità corrente. In effetti, questo metodo è simile al comando rm di UNIX: esprime un'operazione di cancellazione sulla mappatura URI del server di origine piuttosto che un'aspettativa di cancellazione delle informazioni precedentemente associate.
Se la risorsa di destinazione ha una o più rappresentazioni correnti, queste potrebbero essere distrutte o meno dal server di origine e l'archiviazione associata potrebbe essere recuperata o meno, a seconda della natura della risorsa e della sua implementazione da parte del server di origine (che esulano dallo scopo di questa specifica). Allo stesso modo, altri aspetti dell'implementazione di una risorsa potrebbero dover essere disattivati o archiviati a seguito di una DELETE, come ad esempio le connessioni al database o al gateway. In generale, si presume che il server di origine consenta la CANCELLAZIONE solo sulle risorse per le quali ha un meccanismo prescritto per effettuare la cancellazione.
Sono relativamente poche le risorse che consentono il metodo CANCELLAZIONE: il suo uso principale è per gli ambienti di authoring remoti, dove l'utente ha alcune indicazioni riguardo al suo effetto. Ad esempio, una risorsa creata in precedenza con una richiesta PUT o identificata tramite il campo dell'intestazione Location dopo una risposta 201 (Created) a una richiesta POST, potrebbe consentire una richiesta DELETE corrispondente per annullare tali azioni. Allo stesso modo, le implementazioni di user agent personalizzati che implementano una funzione di authoring, come i client di controllo di revisione che utilizzano HTTP per operazioni remote, potrebbero utilizzare DELETE sulla base dell'ipotesi che lo spazio URI del server sia stato creato per corrispondere a un repository di versioni.
Se un metodo DELETE viene applicato con successo, il server di origine DOVREBBE inviare un codice di stato 202 (Accepted) se l'azione avrà probabilmente successo ma non è ancora stata eseguita, un codice di stato 204 (No Content) se l'azione è stata eseguita e non è necessario fornire ulteriori informazioni, oppure un codice di stato 200 (OK) se l'azione è stata eseguita e il messaggio di risposta include una rappresentazione che descrive lo stato.
Un payload all'interno di un messaggio di richiesta DELETE non ha una semantica definita; l'invio di un corpo di payload in una richiesta DELETE potrebbe causare il rifiuto della richiesta da parte di alcune implementazioni esistenti.
Le risposte al metodo DELETE non sono memorizzabili nella cache. Se una richiesta DELETE passa attraverso una cache che ha una o più risposte memorizzate per l'URI effettivo della richiesta, tali risposte memorizzate saranno invalidate (vedere la sezione 4.4 di [RFC7234]).
Descrizione del metodo DELETE
Esempio per il metodo HTTP DELETE
DELETE /data/item/123 HTTP/1.1
Host: api.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/58.0.3029.110 Safari/537
Authorization: Bearer YOUR_ACCESS_TOKEN
Accept-Language: de-DE,de;q=0.5
Connection: keep-alive
Content-Type: application/json
Date: Mon, 31 July 2023 14:58:12 GMT
Server: Apache/2.4.7 (Ubuntu)
Cache-Control: no-store