204 No Content
The request succeeded and there is deliberately nothing to send back. The browser stays on the current page.
At a glance
- Status code
- 204 No Content
- Class
- 2xx, success, the request was received and accepted
- Defined in
- RFC 9110
- Cacheable by default
- yes
- Response body
- None. A body is forbidden, not merely absent.
In detail
204 means the action worked and the response has no payload. It is the correct answer to a DELETE that removed the thing, or to a PUT that saved changes the client already has.
Use it when the client gains nothing from a body. Do not use it when the server changed values the client cannot predict, such as a generated timestamp: return 200 with the updated representation instead.
If a client reports a JSON parse error on a successful save, check for code that calls response.json() unconditionally. A 204 body is empty and parsing it throws.
Examples
HTTP/1.1 204 No Content
Date: Tue, 08 Sep 2026 09:14:02 GMTThings that catch people out
- Sending Content-Length or a body with 204 is a protocol violation, and some intermediaries will treat the stray bytes as the start of the next response.
- A form posted to a URL that returns 204 leaves the browser on the current page with no visible change, which reads as a broken button unless the page handles it.
Try it: HTTP Request Builder
Build a request with any method, headers and body, send it, and read the status line the server returns.
HTTP Request Builder
LOCAL · Browser-OnlyBuild and test HTTP requests with custom headers and body
Authentication
Headers
Generate Code
curl -X GET 'https://api.example.com/endpoint' \
-H 'Content-Type: application/json'Showing a sample URL. Enter your endpoint above to update the snippet.
Related HTTP status codes
All http status codes →200 OK
The request succeeded. What the body contains depends on the method: a GET returns the resource, a POST returns the result of the action.
205 Reset Content
The request succeeded and the client should clear the form that sent it, ready for another entry.
304 Not Modified
The cached copy the client already holds is still current, so the server sent no body. This is what makes conditional requests cheap.
206 Partial Content
The server is returning part of the resource because the request carried a Range header. This is what makes resumable downloads and video seeking work.
207 Multi-Status
A WebDAV response carrying several independent status codes at once, one for each resource the request touched.
208 Already Reported
Inside a WebDAV multi-status response, this member was already listed earlier and its properties are not repeated.
Tools for this
- HTTP Request Builder Free online HTTP request builder - build and test HTTP requests with custom headers and body
- HTTP Headers Checker Free online HTTP headers checker - view HTTP response headers for any URL