Apache2-API
view release on metacpan or search on metacpan
lib/Apache2/API/Status.pm view on Meta::CPAN
This is returned to indicate the resource does not exist anymore.
=head2 HTTP_METHOD_NOT_ALLOWED (405)
See L<rfc 7231, section 6.5.5|https://tools.ietf.org/html/rfc7231#section-6.5.5>
This is returned to indicate the client it used a L<method|https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods> not allowed, such as using C<PUT> instead of C<GET>. The server can point out the supported methods with the C<Allow> header, such a...
HTTP/1.1 405 Method Not Allowed
Content-Type: text/html
Content-Length: 32
Allow: GET, HEAD, OPTIONS, PUT
<h1>405 Try another method!</h1>
=head2 HTTP_NOT_ACCEPTABLE (406)
See L<rfc 7231, section 6.5.6|https://tools.ietf.org/html/rfc7231#section-6.5.6>
This is returned to the client to indicate its requirements are not supported and thus not acceptable. This is in response to L<Accept|https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept>, L<Accept-Charset|https://developer.mozilla.org/e...
For example:
GET /foo HTTP/1.1
Accept: application/json
Accept-Language: fr-FR,en-GB;q=0.8,fr;q=0.6,en;q=0.4,ja;q=0.2
HTTP/1.1 406 Not Acceptable
Server: Apache/2.4
Content-Type: text/html
<h1>Je ne gère pas le type application/json</h1>
Then, the server would response something like:
=head2 HTTP_PROXY_AUTHENTICATION_REQUIRED (407)
See L<rfc 7235, section 3.2 on Authentication|https://tools.ietf.org/html/rfc7235#section-3.2>
This is returned to indicate the proxy used requires authentication. This is similar to the status code C<401 Unauthorized>.
=head2 HTTP_REQUEST_TIME_OUT (408)
See L<rfc 7231, section 6.5.7|https://tools.ietf.org/html/rfc7231#section-6.5.7>
This is returned to indicate the request took too long to be received and timed out. For example:
HTTP/1.1 408 Request Timeout
Connection: close
Content-Type: text/plain
Content-Length: 19
Too slow! Try again
=head2 HTTP_CONFLICT (409)
See L<rfc 7231, section 6.5.8|https://tools.ietf.org/html/rfc7231#section-6.5.8>
This is returned to indicate a request conflict with the current state of the target resource, such as uploading with C<PUT> a file older than the remote one.
=head2 HTTP_GONE (410)
See L<rfc 7231, section 6.5.9|https://tools.ietf.org/html/rfc7231#section-6.5.9>
This is returned to indicate that the target resource is gone permanently. The subtle difference with the status code C<404> is that with C<404>, the resource may be only temporally unavailable whereas with C<410>, this is irremediable. For example:
HTTP/1.1 410 Gone
Server: Apache/2.4
Content-Type: text/plain
Content-Length: 30
The resource has been removed.
=head2 HTTP_LENGTH_REQUIRED (411)
See L<rfc 7231, section 6.5.10|https://tools.ietf.org/html/rfc7231#section-6.5.10>
This is returned when the C<Content-Length> header was not provided by the client and the server requires it to be present. Most servers can do without.
=head2 HTTP_PRECONDITION_FAILED (412)
See L<rfc 7232 on Conditional Request|https://tools.ietf.org/html/rfc7232>
This is returned when some preconditions set by the client could not be met.
For example:
Issuing a C<PUT> request for a document if it does not already exist.
PUT /foo/new-article.md HTTP/1.1
Content-Type: text/markdown
If-None-Match: *
Update a document if it has not changed since last time (etag)
PUT /foo/old-article.md HTTP/1.1
If-Match: "1345-12315"
Content-Type: text/markdown
If those failed, it would return something like:
HTTP/1.1 412 Precondition Failed
Content-Type: text/plain
Content-Length: 64
The article you are tring to update has changed since last time.
If one adds the C<Prefer> header, the servers will return the current state of the resource, thus saving a round of request with a C<GET>, such as:
PUT /foo/old-article.md HTTP/1.1
If-Match: "1345-12315"
Content-Type: text/markdown
Prefer: return=representation
### Article version 2.1
Then, the server would respond something like:
HTTP/1.1 412 Precondition Failed
( run in 2.084 seconds using v1.01-cache-2.11-cpan-b16cb0d3907 )