HTTP status codes:

Here is the list of all the valid HTTP - status codes, and the corresponding phrases, that PHP scripting language can generate when using the $http_response_code parameter in the header() function.
The invalid codes (for example: 199) generate a 500 Internal Server Error response.

To send a specific HTTP status code, the prototype of the header() function is:
void header(string $string, bool $replace, int $http_response_code)

The 3 parameters are:
Examples of use:
The string parameter does not contain any colon character
/* The server will ouput:
 * the response status "HTTP/1.1 204 No Content" */
header('x', TRUE, 204);
The string parameter contains a response header, of which the syntax is:
<string header-name><char colon><char space><string header-value>
/* The server will ouput:
 * the response status "HTTP/1.1 405 Method Not Allowed"
 * and the response header "Allow: GET, HEAD" */
header('Allow: GET, HEAD', TRUE, 405);

List of status codes and phrases generated by PHP:

500 Internal Server Error

Get the list in these other formats:

Format Description
Text code[HT]phrase[LF] ...
CSV code,"phrase"[LF] ...
XML <?xml version="1.0" encoding="UTF-8"?> <http-status-codes> <status> <code>code</code> <phrase>phrase</phrase> </status> ... </http-status-codes>
PHP $a_http_status_codes = array( code => 'phrase', ... );
Javascript var oHttpStatusCodes = { code: 'phrase', ... };
JSON {"oHttpStatusCodes": { "code": "phrase", ... }}
MySQL INSERT INTO `http_status_codes` (`code`, `phrase`) VALUES (code, 'phrase'), ...;

Hypertext Transfer Protocol:

Resource Description
RFC 2616 (HTML) HTTP/1.1
RFC 2616 (Text)
RFC 4918 (HTML) HTTP Extensions for Web Distributed Authoring and Versioning
RFC 4918 (Text)