1 // Copyright 2009 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
7 // HTTP status codes as registered with IANA.
8 // See: https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
10 StatusContinue
= 100 // RFC 7231, 6.2.1
11 StatusSwitchingProtocols
= 101 // RFC 7231, 6.2.2
12 StatusProcessing
= 102 // RFC 2518, 10.1
13 StatusEarlyHints
= 103 // RFC 8297
15 StatusOK
= 200 // RFC 7231, 6.3.1
16 StatusCreated
= 201 // RFC 7231, 6.3.2
17 StatusAccepted
= 202 // RFC 7231, 6.3.3
18 StatusNonAuthoritativeInfo
= 203 // RFC 7231, 6.3.4
19 StatusNoContent
= 204 // RFC 7231, 6.3.5
20 StatusResetContent
= 205 // RFC 7231, 6.3.6
21 StatusPartialContent
= 206 // RFC 7233, 4.1
22 StatusMultiStatus
= 207 // RFC 4918, 11.1
23 StatusAlreadyReported
= 208 // RFC 5842, 7.1
24 StatusIMUsed
= 226 // RFC 3229, 10.4.1
26 StatusMultipleChoices
= 300 // RFC 7231, 6.4.1
27 StatusMovedPermanently
= 301 // RFC 7231, 6.4.2
28 StatusFound
= 302 // RFC 7231, 6.4.3
29 StatusSeeOther
= 303 // RFC 7231, 6.4.4
30 StatusNotModified
= 304 // RFC 7232, 4.1
31 StatusUseProxy
= 305 // RFC 7231, 6.4.5
32 _
= 306 // RFC 7231, 6.4.6 (Unused)
33 StatusTemporaryRedirect
= 307 // RFC 7231, 6.4.7
34 StatusPermanentRedirect
= 308 // RFC 7538, 3
36 StatusBadRequest
= 400 // RFC 7231, 6.5.1
37 StatusUnauthorized
= 401 // RFC 7235, 3.1
38 StatusPaymentRequired
= 402 // RFC 7231, 6.5.2
39 StatusForbidden
= 403 // RFC 7231, 6.5.3
40 StatusNotFound
= 404 // RFC 7231, 6.5.4
41 StatusMethodNotAllowed
= 405 // RFC 7231, 6.5.5
42 StatusNotAcceptable
= 406 // RFC 7231, 6.5.6
43 StatusProxyAuthRequired
= 407 // RFC 7235, 3.2
44 StatusRequestTimeout
= 408 // RFC 7231, 6.5.7
45 StatusConflict
= 409 // RFC 7231, 6.5.8
46 StatusGone
= 410 // RFC 7231, 6.5.9
47 StatusLengthRequired
= 411 // RFC 7231, 6.5.10
48 StatusPreconditionFailed
= 412 // RFC 7232, 4.2
49 StatusRequestEntityTooLarge
= 413 // RFC 7231, 6.5.11
50 StatusRequestURITooLong
= 414 // RFC 7231, 6.5.12
51 StatusUnsupportedMediaType
= 415 // RFC 7231, 6.5.13
52 StatusRequestedRangeNotSatisfiable
= 416 // RFC 7233, 4.4
53 StatusExpectationFailed
= 417 // RFC 7231, 6.5.14
54 StatusTeapot
= 418 // RFC 7168, 2.3.3
55 StatusMisdirectedRequest
= 421 // RFC 7540, 9.1.2
56 StatusUnprocessableEntity
= 422 // RFC 4918, 11.2
57 StatusLocked
= 423 // RFC 4918, 11.3
58 StatusFailedDependency
= 424 // RFC 4918, 11.4
59 StatusTooEarly
= 425 // RFC 8470, 5.2.
60 StatusUpgradeRequired
= 426 // RFC 7231, 6.5.15
61 StatusPreconditionRequired
= 428 // RFC 6585, 3
62 StatusTooManyRequests
= 429 // RFC 6585, 4
63 StatusRequestHeaderFieldsTooLarge
= 431 // RFC 6585, 5
64 StatusUnavailableForLegalReasons
= 451 // RFC 7725, 3
66 StatusInternalServerError
= 500 // RFC 7231, 6.6.1
67 StatusNotImplemented
= 501 // RFC 7231, 6.6.2
68 StatusBadGateway
= 502 // RFC 7231, 6.6.3
69 StatusServiceUnavailable
= 503 // RFC 7231, 6.6.4
70 StatusGatewayTimeout
= 504 // RFC 7231, 6.6.5
71 StatusHTTPVersionNotSupported
= 505 // RFC 7231, 6.6.6
72 StatusVariantAlsoNegotiates
= 506 // RFC 2295, 8.1
73 StatusInsufficientStorage
= 507 // RFC 4918, 11.5
74 StatusLoopDetected
= 508 // RFC 5842, 7.2
75 StatusNotExtended
= 510 // RFC 2774, 7
76 StatusNetworkAuthenticationRequired
= 511 // RFC 6585, 6
79 var statusText
= map[int]string{
80 StatusContinue
: "Continue",
81 StatusSwitchingProtocols
: "Switching Protocols",
82 StatusProcessing
: "Processing",
83 StatusEarlyHints
: "Early Hints",
86 StatusCreated
: "Created",
87 StatusAccepted
: "Accepted",
88 StatusNonAuthoritativeInfo
: "Non-Authoritative Information",
89 StatusNoContent
: "No Content",
90 StatusResetContent
: "Reset Content",
91 StatusPartialContent
: "Partial Content",
92 StatusMultiStatus
: "Multi-Status",
93 StatusAlreadyReported
: "Already Reported",
94 StatusIMUsed
: "IM Used",
96 StatusMultipleChoices
: "Multiple Choices",
97 StatusMovedPermanently
: "Moved Permanently",
99 StatusSeeOther
: "See Other",
100 StatusNotModified
: "Not Modified",
101 StatusUseProxy
: "Use Proxy",
102 StatusTemporaryRedirect
: "Temporary Redirect",
103 StatusPermanentRedirect
: "Permanent Redirect",
105 StatusBadRequest
: "Bad Request",
106 StatusUnauthorized
: "Unauthorized",
107 StatusPaymentRequired
: "Payment Required",
108 StatusForbidden
: "Forbidden",
109 StatusNotFound
: "Not Found",
110 StatusMethodNotAllowed
: "Method Not Allowed",
111 StatusNotAcceptable
: "Not Acceptable",
112 StatusProxyAuthRequired
: "Proxy Authentication Required",
113 StatusRequestTimeout
: "Request Timeout",
114 StatusConflict
: "Conflict",
116 StatusLengthRequired
: "Length Required",
117 StatusPreconditionFailed
: "Precondition Failed",
118 StatusRequestEntityTooLarge
: "Request Entity Too Large",
119 StatusRequestURITooLong
: "Request URI Too Long",
120 StatusUnsupportedMediaType
: "Unsupported Media Type",
121 StatusRequestedRangeNotSatisfiable
: "Requested Range Not Satisfiable",
122 StatusExpectationFailed
: "Expectation Failed",
123 StatusTeapot
: "I'm a teapot",
124 StatusMisdirectedRequest
: "Misdirected Request",
125 StatusUnprocessableEntity
: "Unprocessable Entity",
126 StatusLocked
: "Locked",
127 StatusFailedDependency
: "Failed Dependency",
128 StatusTooEarly
: "Too Early",
129 StatusUpgradeRequired
: "Upgrade Required",
130 StatusPreconditionRequired
: "Precondition Required",
131 StatusTooManyRequests
: "Too Many Requests",
132 StatusRequestHeaderFieldsTooLarge
: "Request Header Fields Too Large",
133 StatusUnavailableForLegalReasons
: "Unavailable For Legal Reasons",
135 StatusInternalServerError
: "Internal Server Error",
136 StatusNotImplemented
: "Not Implemented",
137 StatusBadGateway
: "Bad Gateway",
138 StatusServiceUnavailable
: "Service Unavailable",
139 StatusGatewayTimeout
: "Gateway Timeout",
140 StatusHTTPVersionNotSupported
: "HTTP Version Not Supported",
141 StatusVariantAlsoNegotiates
: "Variant Also Negotiates",
142 StatusInsufficientStorage
: "Insufficient Storage",
143 StatusLoopDetected
: "Loop Detected",
144 StatusNotExtended
: "Not Extended",
145 StatusNetworkAuthenticationRequired
: "Network Authentication Required",
148 // StatusText returns a text for the HTTP status code. It returns the empty
149 // string if the code is unknown.
150 func StatusText(code
int) string {
151 return statusText
[code
]