35 static $statusMessage = [
37 101 =>
'Switching Protocols',
42 203 =>
'Non-Authoritative Information',
44 205 =>
'Reset Content',
45 206 =>
'Partial Content',
46 207 =>
'Multi-Status',
47 300 =>
'Multiple Choices',
48 301 =>
'Moved Permanently',
51 304 =>
'Not Modified',
53 307 =>
'Temporary Redirect',
55 401 =>
'Unauthorized',
56 402 =>
'Payment Required',
59 405 =>
'Method Not Allowed',
60 406 =>
'Not Acceptable',
61 407 =>
'Proxy Authentication Required',
62 408 =>
'Request Timeout',
65 411 =>
'Length Required',
66 412 =>
'Precondition Failed',
67 413 =>
'Request Entity Too Large',
68 414 =>
'Request-URI Too Large',
69 415 =>
'Unsupported Media Type',
70 416 =>
'Request Range Not Satisfiable',
71 417 =>
'Expectation Failed',
72 422 =>
'Unprocessable Entity',
74 424 =>
'Failed Dependency',
75 428 =>
'Precondition Required',
76 429 =>
'Too Many Requests',
77 431 =>
'Request Header Fields Too Large',
78 500 =>
'Internal Server Error',
79 501 =>
'Not Implemented',
81 503 =>
'Service Unavailable',
82 504 =>
'Gateway Timeout',
83 505 =>
'HTTP Version Not Supported',
84 507 =>
'Insufficient Storage',
85 511 =>
'Network Authentication Required',
87 return $statusMessage[$code] ??
null;
98 static $version = null;
99 $message = self::getMessage( $code );
100 if ( $message ===
null ) {
101 throw new InvalidArgumentException(
"Unknown HTTP status code $code" );
104 if ( $version ===
null ) {
105 $version = isset( $_SERVER[
'SERVER_PROTOCOL'] ) &&
106 $_SERVER[
'SERVER_PROTOCOL'] ===
'HTTP/1.0' ?
111 return "HTTP/$version $code $message";
121 \MediaWiki\Request\HeaderCallback::warnIfHeadersSent();
124 header( self::getHeader( $code ) );
125 }
catch ( InvalidArgumentException $ex ) {
126 trigger_error(
"Unknown HTTP status code $code", E_USER_WARNING );
static header( $code)
Output an HTTP status code header.
static getHeader( $code)
Construct an HTTP status code header.
static getMessage( $code)
Get the message associated with an HTTP response status code.