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:

100 Continue101 Switching Protocols102 Processing
200 OK201 Created202 Accepted203 Non-Authoritative Information204 No Content205 Reset Content206 Partial Content207 Multi-Status208 Already Reported
226 IM Used
300 Multiple Choices301 Moved Permanently302 Found303 See Other304 Not Modified305 Use Proxy
307 Temporary Redirect308 Permanent Redirect
400 Bad Request401 Unauthorized402 Payment Required403 Forbidden404 Not Found405 Method Not Allowed406 Not Acceptable407 Proxy Authentication Required408 Request Timeout409 Conflict410 Gone411 Length Required412 Precondition Failed413 Request Entity Too Large414 Request-URI Too Long415 Unsupported Media Type416 Requested Range Not Satisfiable417 Expectation Failed
421 Misdirected Request422 Unprocessable Entity423 Locked424 Failed Dependency
426 Upgrade Required
428 Precondition Required429 Too Many Requests
431 Request Header Fields Too Large
451 Unavailable For Legal Reasons
500 Internal Server Error501 Not Implemented502 Bad Gateway503 Service Unavailable504 Gateway Timeout505 HTTP Version Not Supported506 Variant Also Negotiates507 Insufficient Storage508 Loop Detected
510 Not Extended511 Network Authentication Required

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)