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
bad_request(String.t()) :: Sap.Combinators.combinator()
This response means that server could not understand the request due to invalid syntax.
conflict(String.t()) :: Sap.Combinators.combinator()
This response is sent when a request conflicts with the current state of the server.
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.
forbidden(String.t()) :: Sap.Combinators.combinator()
Although the HTTP standard specifies “unauthorized”, semantically this response means “unauthenticated”. That is, the client must authenticate itself to get the requested response.
gone(String.t()) :: Sap.Combinators.combinator()
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.
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.
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.
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.
not_found(String.t()) :: Sap.Combinators.combinator()
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.
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.
precondition_failed(String.t()) :: Sap.Combinators.combinator()
The client has indicated preconditions in its headers which the server does not meet.
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.
proxy_authentication_required(String.t()) :: Sap.Combinators.combinator()
This is similar to 401 but authentication is needed to be done by a proxy.
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.
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.
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.
too_many_requests(String.t()) :: Sap.Combinators.combinator()
The user has sent too many requests in a given amount of time (“rate limiting”).
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.
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.
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).
uri_too_long(String.t()) :: Sap.Combinators.combinator()
The URI requested by the client is longer than the server is willing to interpret.