2×× - Success
204 No Content
The server has successfully fulfilled the request and that there is no additional content to send in the response payload body.
Metadata in the response header fields refer to the target resource and its selected representation after the requested action was applied.
For example, if a 204 status code is received in response to a PUT
request and the response contains an ETag
header field, then the PUT was
successful and the ETag
field-value contains the entity-tag for the new
representation of that target resource.
The 204 response allows a server to indicate that the action has been successfully applied to the target resource, while implying that the user agent does not need to traverse away from its current “document view” (if any). The server assumes that the user agent will provide some indication of the success to its user, in accord with its own interface, and apply any new or updated metadata in the response to its active representation.
For example, a 204 status code is commonly used with document editing interfaces corresponding to a “save” action, such that the document being saved remains available to the user for editing. It is also frequently used with interfaces that expect automated data transfers to be prevalent, such as within distributed version control systems.
A 204 response is terminated by the first empty line after the header fields because it cannot contain a message body.
A 204 response is cacheable by default; i.e., unless otherwise indicated by the method definition or explicit cache controls1.
- 1 Calculating Heuristic Freshness RFC7234 Section 4.2.2
- Source: RFC7231 Section 6.3.5
204 Code References
- Rails HTTP Status Symbol:
:no_content
- Go HTTP Status Constant:
http.StatusNoContent
- Symfony HTTP Status Constant:
Response::HTTP_NO_CONTENT
- Python2 HTTP Status Constant:
httplib.NO_CONTENT
- Python3+ HTTP Status Constant:
http.client.NO_CONTENT
- Python3.5+ HTTP Status Constant:
http.HTTPStatus.NO_CONTENT