aboutsummaryrefslogblamecommitdiffstats
path: root/manual/http_status_codes.md
blob: 070dce8aeffe088a152580582295f663454c8c68 (plain) (tree)



















































































































































































                                                           
HTTP status codes
=================

This chapter aims to list all HTTP status codes that Cowboy
may return, with details on the reasons why. The list given
here only includes the replies that Cowboy sends, not user
replies.

100 Continue
------------

When the client sends an `expect: 100-continue` header,
Cowboy automatically sends a this status code before
trying to read the request body. This behavior can be
disabled using the appropriate body option.

101 Switching Protocols
-----------------------

This is the status code sent when switching to the
Websocket protocol.

200 OK
------

This status code is sent by `cowboy_rest`.

201 Created
-----------

This status code is sent by `cowboy_rest`.

202 Accepted
------------

This status code is sent by `cowboy_rest`.

204 No Content
--------------

This status code is sent when the processing of a request
ends without any reply having been sent. It may also be
sent by `cowboy_rest` under normal conditions.

300 Multiple Choices
--------------------

This status code is sent by `cowboy_rest`.

301 Moved Permanently
---------------------

This status code is sent by `cowboy_rest`.

303 See Other
-------------

This status code is sent by `cowboy_rest`.

304 Not Modified
----------------

This status code is sent by `cowboy_rest`.

307 Temporary Redirect
----------------------

This status code is sent by `cowboy_rest`.

400 Bad Request
---------------

Cowboy will send this status code for any of the
following reasons:

* Too many empty lines were sent before the request.
* The request-line could not be parsed.
* Too many headers were sent.
* A header name was too long.
* A header value was too long.
* The host header was missing from an HTTP/1.1 request.
* The host header could not be parsed.
* The requested host was not found.
* The requested path could not be parsed.
* The accept header could not be parsed when using REST.
* REST under normal conditions.
* A Websocket upgrade failed.

401 Unauthorized
----------------

This status code is sent by `cowboy_rest`.

403 Forbidden
-------------

This status code is sent by `cowboy_rest`.

404 Not Found
-------------

This status code is sent when the router successfully
resolved the host but didn't find a matching path for
the request. It may also be sent by `cowboy_rest` under
normal conditions.

405 Method Not Allowed
----------------------

This status code is sent by `cowboy_rest`.

406 Not Acceptable
------------------

This status code is sent by `cowboy_rest`.

408 Request Timeout
-------------------

Cowboy will send this status code to the client if the
client started to send a request, indicated by the
request-line being received fully, but failed to send
all headers in a reasonable time.

409 Conflict
------------

This status code is sent by `cowboy_rest`.

410 Gone
--------

This status code is sent by `cowboy_rest`.

412 Precondition Failed
-----------------------

This status code is sent by `cowboy_rest`.

413 Request Entity Too Large
----------------------------

This status code is sent by `cowboy_rest`.

414 Request-URI Too Long
------------------------

Cowboy will send this status code to the client if the
request-line is too long. It may also be sent by
`cowboy_rest` under normal conditions.

415 Unsupported Media Type
--------------------------

This status code is sent by `cowboy_rest`.

500 Internal Server Error
-------------------------

This status code is sent when a crash occurs in HTTP, loop
or REST handlers, or when an invalid return value is
returned. It may also be sent by `cowboy_rest` under
normal conditions.

501 Not Implemented
-------------------

This status code is sent by `cowboy_rest`.

503 Service Unavailable
-----------------------

This status code is sent by `cowboy_rest`.

505 HTTP Version Not Supported
------------------------------

Cowboy only supports the versions 1.0 and 1.1 of HTTP.
In all other cases this status code is sent back to the
client and the connection is closed.