Explaining the conditions that trigger status codes

Status Codes

Preliminaries

An explanation of what conditions trigger each status code in an HTTP/2 response.

OK Status Code 200

A request was fulfilled and the response body contains the bytes requested. This occurs for these types of requests:

  • All successful GET requests.
  • All TRACE requests, where the headers are simply echoed back to the user-agent in the response body using content-type message/http.
  • All OPTIONS requests with a content-length of zero and an empty body.

Created Status Code 201

The request was successful, and no further action is needed. This occurs for these types of requests:

  • A PUT request to upload a new file completed without errors.

No Content Status Code 204

The request was successful, and no further action is needed. This occurs for these types of requests:

  • The RBAC Auth handler processed a POST request to login or logout without errors.
  • A PUT request to upload an existing file completed without errors.
  • A DELETE request deleted a file without errors.

Partial Content Status Code 206

The request was successful, and no further action is needed. This occurs for these types of requests:

  • A GET request with a range header returned the specified portion of a file.

Found Status Code 302

The request was understood, and instructions on how to proceed are returned to the browser. This occurs for these types of requests:

  • The Resource Mask handler has redirected the request to a different scheme or authority. The browser should examine the location response header and reissue the request using that path.

See Other Status Code 303

The request was successfully processed, and followup instructions on which page to display are returned to the browser. This occurs for these types of requests:

  • The RBAC Auth handler received and successfully processed a login or logout request, and the POST form contained a location field; the browser should examine the location response header and issue a followup request using that path.

Not Modified Status Code 304

A conditional request does not need to be fulfilled because the browser already has the most recent version of the resource. This occurs for these types of requests:

  • A GET request contains an if-modified-since header, and the server's copy of the resource is the same or older.
  • A GET request contains an if-match or if-none-match header with an Etag value, and the server's copy of the resource has a matching Etag value.

Bad Request Status Code 400

The request was not fully understood by the server. This may be caused by any of these circumstances:

  • The request to login or logout did not include credentials in the proper form.
  • The request attempted to access a file outside the area defined for public documents.
  • The request says that it is intended for a website that is different from this website's hostname.

Forbidden Status Code 403

The server understood the request, but is refusing to fulfill it. This may be caused by any of these circumstances:

  • The requestor did not login to this website's Role Based Access Control system.
  • The requestor's authorization to access the website has timed-out.
  • The requestor is not assigned a role that grants permission to this resource.
  • The resource is in a directory that is explicitly marked as private.

Not Found Status Code 404

The requested item does not exist at the specified location. This may be the result of any of these circumstances:

  • The hyperlink from the previous web page is broken.
  • The URL was incorrectly typed or copy-and-pasted.
  • The resource was here at one time, but has since been deleted or moved to a different place.

Method not allowed Status Code 405

The HTTP method is not allowed with the requested item. This may be the result of any of these circumstances:

  • Only explicitly configured HTTP methods are honored by the server.
  • The Role Based Access Control system does not allow the HTTP method for the requested resource.
  • The Router module does not allow the HTTP method for the requested resource.
  • The Cross Origin module does not allow the HTTP method for the origin server.

Not acceptable Status Code 406

An acceptable response to the HTTP request could not be negotiated between the browser and server. This may be the result of any of these circumstances:

  • The browser's request explicitly asks for a response in a natural language that it can't provide.
  • The browser has asked for a document with a type of content different from what the server actually has.
  • The server is not able to decompress the request using the specified algorithm.

Conflict Status Code 409

The browser's request conflicts with the server's file system protections. This may be caused by any of these circumstances:

  • The server does not have permission to read the document.
  • The server does not have permission to write the document.
  • The server does not have permission to delete the document.
  • The server does not have permission to create the document directory.

Length required Status Code 411

The browser's request was missing information needed to properly perform the action. This may be caused by any of these circumstances:

  • The request did not specify a content length.
  • The request's content length exceeded the limit imposed by the server.

Precondition failed Status Code 412

The conditions imposed by the browser were not met, and the server honored the request to block the action. This may be caused by any of these circumstances:

  • The Etag provided by the browser does not match the current resource's Etag.
  • The timestamp provided by the browser does not match the resource's last-modified time.

URI too long Status Code 414

The request was canceled because it exceeded a limit imposed by the server. This may be caused by any of these circumstances:

  • The resource path was longer than 255 characters.
  • The URI was improperly encoded and the query-string could not be separated from the resource path.

Unsupported media type Status Code 415

The request was canceled because its data was not provided in the expected form. This may be caused by any of these circumstances:

  • The request neglected to specify the content's type.
  • The request specified a content-type that the server is not configured to handle.
  • The request specified an allowable content-type, but the filename extension indicates that it is a different type.
  • A login/logout request did not provide the necessary data in the correct form.

Range not satisfiable Status Code 416

The request for partial content could not be honored. This may be caused by any of these circumstances:

  • The range request did not specify its value using 'bytes'.
  • The range request was improperly formed, with a starting value greater than the ending value.

Internal server error Status Code 500

The request failed due to a server-side problem. This may be caused by any of these circumstances:

  • The request was routed to a dynamic module that could not be located.
  • A dynamic module was improperly implemented by a third-party provider.
  • The server's file system permission handler trapped an unexpected type of file activity.
  • The server software was not prepared to handle the current state of affairs.

Not implemented Status Code 501

The request was canceled due to a server-side limitation. This may be caused by any of these circumstances:

  • Requests to upload a portion of a file, using the PUT method are not implemented.

Explaining the conditions that trigger status codes