Sap v0.1.0 Sap.Combinators.ClientError View Source

Error responses caused by client behavior

Link to this section Summary

Functions

This response means that server could not understand the request due to invalid syntax

This response is sent when a request conflicts with the current state of the server

This response code means the expectation indicated by the Expect request header field can’t be met by the server

Although the HTTP standard specifies “unauthorized”, semantically this response means “unauthenticated”. That is, the client must authenticate itself to get the requested response

This response would be sent when the requested content has been permenantly deleted from server, with no forwarding address. Clients are expected to remove their caches and links to the resource. The HTTP specification intends this status code to be used for “limited-time, promotional services”. APIs should not feel compelled to indicate resources that have been deleted with this status code

Server rejected the request because the Content-Length header field is not defined and the server requires it

The request method is known by the server but has been disabled and cannot be used. For example, an API may forbid DELETE-ing a resource. The two mandatory methods, GET and HEAD, must never be disabled and should not return this error code

This response is sent when the web server, after performing server-driven content negotiation, doesn’t find any content following the criteria given by the user agent

The server can not find requested resource. In the browser, this means the URL is not recognized. In an API, this can also mean that the endpoint is valid but the resource itself does not exist. Servers may also send this response instead of 403 to hide the existence of a resource from an unauthorized client. This response code is probably the most famous one due to its frequent occurence on the web

Request entity is larger than limits defined by server; the server might close the connection or return an Retry-After header field

The client has indicated preconditions in its headers which the server does not meet

The origin server requires the request to be conditional. Intended to prevent the ‘lost update’ problem, where a client GETs a resource’s state, modifies it, and PUTs it back to the server, when meanwhile a third party has modified the state on the server, leading to a conflict

This is similar to 401 but authentication is needed to be done by a proxy

The server is unwilling to process the request because its header fields are too large. The request MAY be resubmitted after reducing the size of the request header fields

This response is sent on an idle connection by some servers, even without any previous request by the client. It means that the server would like to shut down this unused connection. This response is used much more since some browsers, like Chrome, Firefox 27+, or IE9, use HTTP pre-connection mechanisms to speed up surfing. Also note that some servers merely shut down the connection without sending this message

The range specified by the Range header field in the request can’t be fulfilled; it’s possible that the range is outside the size of the target URI’s data

The user has sent too many requests in a given amount of time (“rate limiting”)

The client does not have access rights to the content, i.e. they are unauthorized, so server is rejecting to give proper response. Unlike 401, the client’s identity is known to the server

The user requests an illegal resource, such as a web page censored by a government

The media format of the requested data is not supported by the server, so the server is rejecting the request

The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol. The server sends an Upgrade header in a 426 response to indicate the required protocol(s)

The URI requested by the client is longer than the server is willing to interpret

Link to this section Functions

Link to this function bad_request(content \\ "") View Source
bad_request(String.t()) :: Sap.Combinators.combinator()

This response means that server could not understand the request due to invalid syntax.

This response is sent when a request conflicts with the current state of the server.

Link to this function expectation_failed(content \\ "") View Source
expectation_failed(String.t()) :: Sap.Combinators.combinator()

This response code means the expectation indicated by the Expect request header field can’t be met by the server.

Although the HTTP standard specifies “unauthorized”, semantically this response means “unauthenticated”. That is, the client must authenticate itself to get the requested response.

This response would be sent when the requested content has been permenantly deleted from server, with no forwarding address. Clients are expected to remove their caches and links to the resource. The HTTP specification intends this status code to be used for “limited-time, promotional services”. APIs should not feel compelled to indicate resources that have been deleted with this status code.

Link to this function length_required(content \\ "") View Source
length_required(String.t()) :: Sap.Combinators.combinator()

Server rejected the request because the Content-Length header field is not defined and the server requires it.

Link to this function method_not_allowed(content \\ "") View Source
method_not_allowed(String.t()) :: Sap.Combinators.combinator()

The request method is known by the server but has been disabled and cannot be used. For example, an API may forbid DELETE-ing a resource. The two mandatory methods, GET and HEAD, must never be disabled and should not return this error code.

Link to this function not_acceptable(content \\ "") View Source
not_acceptable(String.t()) :: Sap.Combinators.combinator()

This response is sent when the web server, after performing server-driven content negotiation, doesn’t find any content following the criteria given by the user agent.

The server can not find requested resource. In the browser, this means the URL is not recognized. In an API, this can also mean that the endpoint is valid but the resource itself does not exist. Servers may also send this response instead of 403 to hide the existence of a resource from an unauthorized client. This response code is probably the most famous one due to its frequent occurence on the web.

Link to this function payload_too_large(content \\ "") View Source
payload_too_large(String.t()) :: Sap.Combinators.combinator()

Request entity is larger than limits defined by server; the server might close the connection or return an Retry-After header field.

Link to this function precondition_failed(content \\ "") View Source
precondition_failed(String.t()) :: Sap.Combinators.combinator()

The client has indicated preconditions in its headers which the server does not meet.

Link to this function precondition_required(content \\ "") View Source
precondition_required(String.t()) :: Sap.Combinators.combinator()

The origin server requires the request to be conditional. Intended to prevent the ‘lost update’ problem, where a client GETs a resource’s state, modifies it, and PUTs it back to the server, when meanwhile a third party has modified the state on the server, leading to a conflict.

Link to this function proxy_authentication_required(content \\ "") View Source
proxy_authentication_required(String.t()) :: Sap.Combinators.combinator()

This is similar to 401 but authentication is needed to be done by a proxy.

Link to this function request_header_fields_too_large(content \\ "") View Source
request_header_fields_too_large(String.t()) :: Sap.Combinators.combinator()

The server is unwilling to process the request because its header fields are too large. The request MAY be resubmitted after reducing the size of the request header fields.

Link to this function request_timeout(content \\ "") View Source
request_timeout(String.t()) :: Sap.Combinators.combinator()

This response is sent on an idle connection by some servers, even without any previous request by the client. It means that the server would like to shut down this unused connection. This response is used much more since some browsers, like Chrome, Firefox 27+, or IE9, use HTTP pre-connection mechanisms to speed up surfing. Also note that some servers merely shut down the connection without sending this message.

Link to this function requested_range_not_satisfiable(content \\ "") View Source
requested_range_not_satisfiable(String.t()) :: Sap.Combinators.combinator()

The range specified by the Range header field in the request can’t be fulfilled; it’s possible that the range is outside the size of the target URI’s data.

Link to this function too_many_requests(content \\ "") View Source
too_many_requests(String.t()) :: Sap.Combinators.combinator()

The user has sent too many requests in a given amount of time (“rate limiting”).

Link to this function unauthorized(content \\ "") View Source
unauthorized(String.t()) :: Sap.Combinators.combinator()

The client does not have access rights to the content, i.e. they are unauthorized, so server is rejecting to give proper response. Unlike 401, the client’s identity is known to the server.

Link to this function unsupported_media_type(content \\ "") View Source
unsupported_media_type(String.t()) :: Sap.Combinators.combinator()

The media format of the requested data is not supported by the server, so the server is rejecting the request.

Link to this function upgrade_required(content \\ "") View Source
upgrade_required(String.t()) :: Sap.Combinators.combinator()

The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol. The server sends an Upgrade header in a 426 response to indicate the required protocol(s).

Link to this function uri_too_long(content \\ "") View Source
uri_too_long(String.t()) :: Sap.Combinators.combinator()

The URI requested by the client is longer than the server is willing to interpret.