DELETE

The DELETE HTTP method asks the server to delete a specified resource.

The DELETE method has no defined semantics for the message body, so this should be empty.

Request has body May
Successful response has body May
Safe No
Idempotent Yes
Cacheable No
Allowed in HTML forms No

Syntax

http
DELETE <request-target>["?"<query>] HTTP/1.1
<request-target>

Identifies the target resource of the request when combined with the information provided in the Host header. This is an absolute path (e.g., /path/to/file.html) in requests to an origin server, and an absolute URL in requests to proxies (e.g., https://www.example.com/path/to/file.html).

<query> Optional

An optional query component preceded by a question-mark ?. Often used to carry identifying information in the form of key=value pairs.

Examples

Successfully deleting a resource

The following request asks the server to delete the resource file.html:

http
DELETE /file.html HTTP/1.1
Host: example.com

If the request is successful, there are several possible successful response status codes. A 204 No Content response means the request was successful and no additional information needs to be sent back to the client:

http
HTTP/1.1 204 No Content
Date: Wed, 04 Sep 2024 10:16:04 GMT

A 200 OK response means the request was successful and the response body includes a representation describing the outcome:

http
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Date: Fri, 21 Jun 2024 14:18:33 GMT
Content-Length: 1234

<html>
  <body>
    <h1>File "file.html" deleted.</h1>
  </body>
</html>

A 202 Accepted response means the request has been accepted and will probably succeed, but the resource has not yet been deleted by the server.

http
HTTP/1.1 202 Accepted
Date: Wed, 26 Jun 2024 12:00:00 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 1234

<html>
  <body>
    <h1>Deletion of "file.html" accepted.</h1>
    <p>See <a href="https://example.com/tasks/123/status">the status monitor</a> for details.</p>
  </body>
</html>

Specifications

Specification
HTTP Semantics
# name-delete

Browser compatibility

The browser doesn't use the DELETE method for user-initiated actions, so "browser compatibility" doesn't apply. Developers can set this request method using fetch().

See also