status.mx raw

   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.
   4  
   5  package http
   6  
   7  // HTTP status codes as registered with IANA.
   8  // See: https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
   9  const (
  10  	StatusContinue           = 100 // RFC 9110, 15.2.1
  11  	StatusSwitchingProtocols = 101 // RFC 9110, 15.2.2
  12  	StatusProcessing         = 102 // RFC 2518, 10.1
  13  	StatusEarlyHints         = 103 // RFC 8297
  14  
  15  	StatusOK                   = 200 // RFC 9110, 15.3.1
  16  	StatusCreated              = 201 // RFC 9110, 15.3.2
  17  	StatusAccepted             = 202 // RFC 9110, 15.3.3
  18  	StatusNonAuthoritativeInfo = 203 // RFC 9110, 15.3.4
  19  	StatusNoContent            = 204 // RFC 9110, 15.3.5
  20  	StatusResetContent         = 205 // RFC 9110, 15.3.6
  21  	StatusPartialContent       = 206 // RFC 9110, 15.3.7
  22  	StatusMultiStatus          = 207 // RFC 4918, 11.1
  23  	StatusAlreadyReported      = 208 // RFC 5842, 7.1
  24  	StatusIMUsed               = 226 // RFC 3229, 10.4.1
  25  
  26  	StatusMultipleChoices   = 300 // RFC 9110, 15.4.1
  27  	StatusMovedPermanently  = 301 // RFC 9110, 15.4.2
  28  	StatusFound             = 302 // RFC 9110, 15.4.3
  29  	StatusSeeOther          = 303 // RFC 9110, 15.4.4
  30  	StatusNotModified       = 304 // RFC 9110, 15.4.5
  31  	StatusUseProxy          = 305 // RFC 9110, 15.4.6
  32  	_                       = 306 // RFC 9110, 15.4.7 (Unused)
  33  	StatusTemporaryRedirect = 307 // RFC 9110, 15.4.8
  34  	StatusPermanentRedirect = 308 // RFC 9110, 15.4.9
  35  
  36  	StatusBadRequest                   = 400 // RFC 9110, 15.5.1
  37  	StatusUnauthorized                 = 401 // RFC 9110, 15.5.2
  38  	StatusPaymentRequired              = 402 // RFC 9110, 15.5.3
  39  	StatusForbidden                    = 403 // RFC 9110, 15.5.4
  40  	StatusNotFound                     = 404 // RFC 9110, 15.5.5
  41  	StatusMethodNotAllowed             = 405 // RFC 9110, 15.5.6
  42  	StatusNotAcceptable                = 406 // RFC 9110, 15.5.7
  43  	StatusProxyAuthRequired            = 407 // RFC 9110, 15.5.8
  44  	StatusRequestTimeout               = 408 // RFC 9110, 15.5.9
  45  	StatusConflict                     = 409 // RFC 9110, 15.5.10
  46  	StatusGone                         = 410 // RFC 9110, 15.5.11
  47  	StatusLengthRequired               = 411 // RFC 9110, 15.5.12
  48  	StatusPreconditionFailed           = 412 // RFC 9110, 15.5.13
  49  	StatusRequestEntityTooLarge        = 413 // RFC 9110, 15.5.14
  50  	StatusRequestURITooLong            = 414 // RFC 9110, 15.5.15
  51  	StatusUnsupportedMediaType         = 415 // RFC 9110, 15.5.16
  52  	StatusRequestedRangeNotSatisfiable = 416 // RFC 9110, 15.5.17
  53  	StatusExpectationFailed            = 417 // RFC 9110, 15.5.18
  54  	StatusTeapot                       = 418 // RFC 9110, 15.5.19 (Unused)
  55  	StatusMisdirectedRequest           = 421 // RFC 9110, 15.5.20
  56  	StatusUnprocessableEntity          = 422 // RFC 9110, 15.5.21
  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 9110, 15.5.22
  61  	StatusPreconditionRequired         = 428 // RFC 6585, 3
  62  	StatusTooManyRequests              = 429 // RFC 6585, 4
  63  	StatusRequestHeaderFieldsTooLarge  = 431 // RFC 6585, 5
  64  	StatusUnavailableForLegalReasons   = 451 // RFC 7725, 3
  65  
  66  	StatusInternalServerError           = 500 // RFC 9110, 15.6.1
  67  	StatusNotImplemented                = 501 // RFC 9110, 15.6.2
  68  	StatusBadGateway                    = 502 // RFC 9110, 15.6.3
  69  	StatusServiceUnavailable            = 503 // RFC 9110, 15.6.4
  70  	StatusGatewayTimeout                = 504 // RFC 9110, 15.6.5
  71  	StatusHTTPVersionNotSupported       = 505 // RFC 9110, 15.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
  77  )
  78  
  79  // StatusText returns a text for the HTTP status code. It returns the empty
  80  // string if the code is unknown.
  81  func StatusText(code int) []byte {
  82  	switch code {
  83  	case StatusContinue:
  84  		return "Continue"
  85  	case StatusSwitchingProtocols:
  86  		return "Switching Protocols"
  87  	case StatusProcessing:
  88  		return "Processing"
  89  	case StatusEarlyHints:
  90  		return "Early Hints"
  91  	case StatusOK:
  92  		return "OK"
  93  	case StatusCreated:
  94  		return "Created"
  95  	case StatusAccepted:
  96  		return "Accepted"
  97  	case StatusNonAuthoritativeInfo:
  98  		return "Non-Authoritative Information"
  99  	case StatusNoContent:
 100  		return "No Content"
 101  	case StatusResetContent:
 102  		return "Reset Content"
 103  	case StatusPartialContent:
 104  		return "Partial Content"
 105  	case StatusMultiStatus:
 106  		return "Multi-Status"
 107  	case StatusAlreadyReported:
 108  		return "Already Reported"
 109  	case StatusIMUsed:
 110  		return "IM Used"
 111  	case StatusMultipleChoices:
 112  		return "Multiple Choices"
 113  	case StatusMovedPermanently:
 114  		return "Moved Permanently"
 115  	case StatusFound:
 116  		return "Found"
 117  	case StatusSeeOther:
 118  		return "See Other"
 119  	case StatusNotModified:
 120  		return "Not Modified"
 121  	case StatusUseProxy:
 122  		return "Use Proxy"
 123  	case StatusTemporaryRedirect:
 124  		return "Temporary Redirect"
 125  	case StatusPermanentRedirect:
 126  		return "Permanent Redirect"
 127  	case StatusBadRequest:
 128  		return "Bad Request"
 129  	case StatusUnauthorized:
 130  		return "Unauthorized"
 131  	case StatusPaymentRequired:
 132  		return "Payment Required"
 133  	case StatusForbidden:
 134  		return "Forbidden"
 135  	case StatusNotFound:
 136  		return "Not Found"
 137  	case StatusMethodNotAllowed:
 138  		return "Method Not Allowed"
 139  	case StatusNotAcceptable:
 140  		return "Not Acceptable"
 141  	case StatusProxyAuthRequired:
 142  		return "Proxy Authentication Required"
 143  	case StatusRequestTimeout:
 144  		return "Request Timeout"
 145  	case StatusConflict:
 146  		return "Conflict"
 147  	case StatusGone:
 148  		return "Gone"
 149  	case StatusLengthRequired:
 150  		return "Length Required"
 151  	case StatusPreconditionFailed:
 152  		return "Precondition Failed"
 153  	case StatusRequestEntityTooLarge:
 154  		return "Request Entity Too Large"
 155  	case StatusRequestURITooLong:
 156  		return "Request URI Too Long"
 157  	case StatusUnsupportedMediaType:
 158  		return "Unsupported Media Type"
 159  	case StatusRequestedRangeNotSatisfiable:
 160  		return "Requested Range Not Satisfiable"
 161  	case StatusExpectationFailed:
 162  		return "Expectation Failed"
 163  	case StatusTeapot:
 164  		return "I'm a teapot"
 165  	case StatusMisdirectedRequest:
 166  		return "Misdirected Request"
 167  	case StatusUnprocessableEntity:
 168  		return "Unprocessable Entity"
 169  	case StatusLocked:
 170  		return "Locked"
 171  	case StatusFailedDependency:
 172  		return "Failed Dependency"
 173  	case StatusTooEarly:
 174  		return "Too Early"
 175  	case StatusUpgradeRequired:
 176  		return "Upgrade Required"
 177  	case StatusPreconditionRequired:
 178  		return "Precondition Required"
 179  	case StatusTooManyRequests:
 180  		return "Too Many Requests"
 181  	case StatusRequestHeaderFieldsTooLarge:
 182  		return "Request Header Fields Too Large"
 183  	case StatusUnavailableForLegalReasons:
 184  		return "Unavailable For Legal Reasons"
 185  	case StatusInternalServerError:
 186  		return "Internal Server Error"
 187  	case StatusNotImplemented:
 188  		return "Not Implemented"
 189  	case StatusBadGateway:
 190  		return "Bad Gateway"
 191  	case StatusServiceUnavailable:
 192  		return "Service Unavailable"
 193  	case StatusGatewayTimeout:
 194  		return "Gateway Timeout"
 195  	case StatusHTTPVersionNotSupported:
 196  		return "HTTP Version Not Supported"
 197  	case StatusVariantAlsoNegotiates:
 198  		return "Variant Also Negotiates"
 199  	case StatusInsufficientStorage:
 200  		return "Insufficient Storage"
 201  	case StatusLoopDetected:
 202  		return "Loop Detected"
 203  	case StatusNotExtended:
 204  		return "Not Extended"
 205  	case StatusNetworkAuthenticationRequired:
 206  		return "Network Authentication Required"
 207  	default:
 208  		return ""
 209  	}
 210  }
 211