]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: add missing HTTP status codes
authorSeth Vargo <sethvargo@gmail.com>
Thu, 12 May 2016 20:26:27 +0000 (16:26 -0400)
committerAndrew Gerrand <adg@golang.org>
Wed, 25 May 2016 23:27:21 +0000 (23:27 +0000)
This commit adds missing status codes:

* 102 - Processing
* 207 - Multi-Status
* 208 - Already Reported
* 226 - IM Used
* 308 - Permanent Redirect
* 422 - Unprocessable Entity
* 423 - Locked
* 424 - Failed Dependency
* 426 - Upgrade Required
* 506 - Variant Also Negotiates
* 507 - Insufficient Storage
* 508 - Loop Detected
* 510 - Not Extended
* 511 - Network Authentication Required

Change-Id: Ife0e5b064f4b1e3542d2fd41abc9e7b1e410b644
Reviewed-on: https://go-review.googlesource.com/23090
Reviewed-by: Andrew Gerrand <adg@golang.org>
Run-TryBot: Andrew Gerrand <adg@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/net/http/status.go

index f3dacab6a92043bf0ffa12515a384e7ed5cc5479..98645b7d746637e384df443702cd3d90be8d9800 100644 (file)
@@ -4,63 +4,79 @@
 
 package http
 
-// HTTP status codes, defined in RFC 2616.
+// HTTP status codes as registered with IANA.
+// See: http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
 const (
-       StatusContinue           = 100
-       StatusSwitchingProtocols = 101
+       StatusContinue           = 100 // RFC 7231, 6.2.1
+       StatusSwitchingProtocols = 101 // RFC 7231, 6.2.2
+       StatusProcessing         = 102 // RFC 2518, 10.1
 
-       StatusOK                   = 200
-       StatusCreated              = 201
-       StatusAccepted             = 202
-       StatusNonAuthoritativeInfo = 203
-       StatusNoContent            = 204
-       StatusResetContent         = 205
-       StatusPartialContent       = 206
+       StatusOK                   = 200 // RFC 7231, 6.3.1
+       StatusCreated              = 201 // RFC 7231, 6.3.2
+       StatusAccepted             = 202 // RFC 7231, 6.3.3
+       StatusNonAuthoritativeInfo = 203 // RFC 7231, 6.3.4
+       StatusNoContent            = 204 // RFC 7231, 6.3.5
+       StatusResetContent         = 205 // RFC 7231, 6.3.6
+       StatusPartialContent       = 206 // RFC 7233, 4.1
+       StatusMultiStatus          = 207 // RFC 4918, 11.1
+       StatusAlreadyReported      = 208 // RFC 5842, 7.1
+       StatusIMUsed               = 226 // RFC 3229, 10.4.1
 
-       StatusMultipleChoices   = 300
-       StatusMovedPermanently  = 301
-       StatusFound             = 302
-       StatusSeeOther          = 303
-       StatusNotModified       = 304
-       StatusUseProxy          = 305
-       StatusTemporaryRedirect = 307
+       StatusMultipleChoices   = 300 // RFC 7231, 6.4.1
+       StatusMovedPermanently  = 301 // RFC 7231, 6.4.2
+       StatusFound             = 302 // RFC 7231, 6.4.3
+       StatusSeeOther          = 303 // RFC 7231, 6.4.4
+       StatusNotModified       = 304 // RFC 7232, 4.1
+       StatusUseProxy          = 305 // RFC 7231, 6.4.5
+       _                       = 306 // RFC 7231, 6.4.6 (Unused)
+       StatusTemporaryRedirect = 307 // RFC 7231, 6.4.7
+       StatusPermanentRedirect = 308 // RFC 7538, 3
 
-       StatusBadRequest                   = 400
-       StatusUnauthorized                 = 401
-       StatusPaymentRequired              = 402
-       StatusForbidden                    = 403
-       StatusNotFound                     = 404
-       StatusMethodNotAllowed             = 405
-       StatusNotAcceptable                = 406
-       StatusProxyAuthRequired            = 407
-       StatusRequestTimeout               = 408
-       StatusConflict                     = 409
-       StatusGone                         = 410
-       StatusLengthRequired               = 411
-       StatusPreconditionFailed           = 412
-       StatusRequestEntityTooLarge        = 413
-       StatusRequestURITooLong            = 414
-       StatusUnsupportedMediaType         = 415
-       StatusRequestedRangeNotSatisfiable = 416
-       StatusExpectationFailed            = 417
-       StatusTeapot                       = 418
-       StatusPreconditionRequired         = 428
-       StatusTooManyRequests              = 429
-       StatusRequestHeaderFieldsTooLarge  = 431
-       StatusUnavailableForLegalReasons   = 451
+       StatusBadRequest                   = 400 // RFC 7231, 6.5.1
+       StatusUnauthorized                 = 401 // RFC 7235, 3.1
+       StatusPaymentRequired              = 402 // RFC 7231, 6.5.2
+       StatusForbidden                    = 403 // RFC 7231, 6.5.3
+       StatusNotFound                     = 404 // RFC 7231, 6.5.4
+       StatusMethodNotAllowed             = 405 // RFC 7231, 6.5.5
+       StatusNotAcceptable                = 406 // RFC 7231, 6.5.6
+       StatusProxyAuthRequired            = 407 // RFC 7235, 3.2
+       StatusRequestTimeout               = 408 // RFC 7231, 6.5.7
+       StatusConflict                     = 409 // RFC 7231, 6.5.8
+       StatusGone                         = 410 // RFC 7231, 6.5.9
+       StatusLengthRequired               = 411 // RFC 7231, 6.5.10
+       StatusPreconditionFailed           = 412 // RFC 7232, 4.2
+       StatusRequestEntityTooLarge        = 413 // RFC 7231, 6.5.11
+       StatusRequestURITooLong            = 414 // RFC 7231, 6.5.12
+       StatusUnsupportedMediaType         = 415 // RFC 7231, 6.5.13
+       StatusRequestedRangeNotSatisfiable = 416 // RFC 7233, 4.4
+       StatusExpectationFailed            = 417 // RFC 7231, 6.5.14
+       StatusTeapot                       = 418 // RFC 7168, 2.3.3
+       StatusUnprocessableEntity          = 422 // RFC 4918, 11.2
+       StatusLocked                       = 423 // RFC 4918, 11.3
+       StatusFailedDependency             = 424 // RFC 4918, 11.4
+       StatusUpgradeRequired              = 426 // RFC 7231, 6.5.15
+       StatusPreconditionRequired         = 428 // RFC 6585, 3
+       StatusTooManyRequests              = 429 // RFC 6585, 4
+       StatusRequestHeaderFieldsTooLarge  = 431 // RFC 6585, 5
+       StatusUnavailableForLegalReasons   = 451 // RFC 7725, 3
 
-       StatusInternalServerError           = 500
-       StatusNotImplemented                = 501
-       StatusBadGateway                    = 502
-       StatusServiceUnavailable            = 503
-       StatusGatewayTimeout                = 504
-       StatusHTTPVersionNotSupported       = 505
-       StatusNetworkAuthenticationRequired = 511
+       StatusInternalServerError           = 500 // RFC 7231, 6.6.1
+       StatusNotImplemented                = 501 // RFC 7231, 6.6.2
+       StatusBadGateway                    = 502 // RFC 7231, 6.6.3
+       StatusServiceUnavailable            = 503 // RFC 7231, 6.6.4
+       StatusGatewayTimeout                = 504 // RFC 7231, 6.6.5
+       StatusHTTPVersionNotSupported       = 505 // RFC 7231, 6.6.6
+       StatusVariantAlsoNegotiates         = 506 // RFC 2295, 8.1
+       StatusInsufficientStorage           = 507 // RFC 4918, 11.5
+       StatusLoopDetected                  = 508 // RFC 5842, 7.2
+       StatusNotExtended                   = 510 // RFC 2774, 7
+       StatusNetworkAuthenticationRequired = 511 // RFC 6585, 6
 )
 
 var statusText = map[int]string{
        StatusContinue:           "Continue",
        StatusSwitchingProtocols: "Switching Protocols",
+       StatusProcessing:         "Processing",
 
        StatusOK:                   "OK",
        StatusCreated:              "Created",
@@ -69,6 +85,9 @@ var statusText = map[int]string{
        StatusNoContent:            "No Content",
        StatusResetContent:         "Reset Content",
        StatusPartialContent:       "Partial Content",
+       StatusMultiStatus:          "Multi-Status",
+       StatusAlreadyReported:      "Already Reported",
+       StatusIMUsed:               "IM Used",
 
        StatusMultipleChoices:   "Multiple Choices",
        StatusMovedPermanently:  "Moved Permanently",
@@ -77,6 +96,7 @@ var statusText = map[int]string{
        StatusNotModified:       "Not Modified",
        StatusUseProxy:          "Use Proxy",
        StatusTemporaryRedirect: "Temporary Redirect",
+       StatusPermanentRedirect: "Permanent Redirect",
 
        StatusBadRequest:                   "Bad Request",
        StatusUnauthorized:                 "Unauthorized",
@@ -97,6 +117,10 @@ var statusText = map[int]string{
        StatusRequestedRangeNotSatisfiable: "Requested Range Not Satisfiable",
        StatusExpectationFailed:            "Expectation Failed",
        StatusTeapot:                       "I'm a teapot",
+       StatusUnprocessableEntity:          "Unprocessable Entity",
+       StatusLocked:                       "Locked",
+       StatusFailedDependency:             "Failed Dependency",
+       StatusUpgradeRequired:              "Upgrade Required",
        StatusPreconditionRequired:         "Precondition Required",
        StatusTooManyRequests:              "Too Many Requests",
        StatusRequestHeaderFieldsTooLarge:  "Request Header Fields Too Large",
@@ -108,6 +132,10 @@ var statusText = map[int]string{
        StatusServiceUnavailable:            "Service Unavailable",
        StatusGatewayTimeout:                "Gateway Timeout",
        StatusHTTPVersionNotSupported:       "HTTP Version Not Supported",
+       StatusVariantAlsoNegotiates:         "Variant Also Negotiates",
+       StatusInsufficientStorage:           "Insufficient Storage",
+       StatusLoopDetected:                  "Loop Detected",
+       StatusNotExtended:                   "Not Extended",
        StatusNetworkAuthenticationRequired: "Network Authentication Required",
 }