美文网首页Golang语言知识库
知识分享之Golang——分享http包中常用的响应常量文件

知识分享之Golang——分享http包中常用的响应常量文件

作者: cn華少 | 来源:发表于2022-01-02 22:46 被阅读0次

    知识分享之Golang——分享http包中常用的响应常量文件

    背景

    知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。

    知识分享系列目前包含Java、Golang、Linux、Docker等等。

    开发环境

    • 系统:windows10
    • 语言:Golang
    • golang版本:1.17

    内容

    我们在进行请求响应时需要根据不同的请求进行响应不同的状态码,常用的响应码200、404、403、500等,这些响应码在http包中golang已经给我们内置好了,可以直接使用常量进行快速使用,不必使用自定义字符串,下面是我对于http包各种响应码,有兴趣的小伙伴们可以进行翻看一下。

    // Copyright 2009 The Go Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style
    // license that can be found in the LICENSE file.
    
    package http
    
    // HTTP status codes as registered with IANA.
    // See: https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
    const (
        StatusContinue           = 100 // RFC 7231, 6.2.1
        StatusSwitchingProtocols = 101 // RFC 7231, 6.2.2
        StatusProcessing         = 102 // RFC 2518, 10.1
        StatusEarlyHints         = 103 // RFC 8297
    
        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 // 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 // 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
        StatusMisdirectedRequest           = 421 // RFC 7540, 9.1.2
        StatusUnprocessableEntity          = 422 // RFC 4918, 11.2
        StatusLocked                       = 423 // RFC 4918, 11.3
        StatusFailedDependency             = 424 // RFC 4918, 11.4
        StatusTooEarly                     = 425 // RFC 8470, 5.2.
        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 // 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",
        StatusEarlyHints:         "Early Hints",
    
        StatusOK:                   "OK",
        StatusCreated:              "Created",
        StatusAccepted:             "Accepted",
        StatusNonAuthoritativeInfo: "Non-Authoritative Information",
        StatusNoContent:            "No Content",
        StatusResetContent:         "Reset Content",
        StatusPartialContent:       "Partial Content",
        StatusMultiStatus:          "Multi-Status",
        StatusAlreadyReported:      "Already Reported",
        StatusIMUsed:               "IM Used",
    
        StatusMultipleChoices:   "Multiple Choices",
        StatusMovedPermanently:  "Moved Permanently",
        StatusFound:             "Found",
        StatusSeeOther:          "See Other",
        StatusNotModified:       "Not Modified",
        StatusUseProxy:          "Use Proxy",
        StatusTemporaryRedirect: "Temporary Redirect",
        StatusPermanentRedirect: "Permanent Redirect",
    
        StatusBadRequest:                   "Bad Request",
        StatusUnauthorized:                 "Unauthorized",
        StatusPaymentRequired:              "Payment Required",
        StatusForbidden:                    "Forbidden",
        StatusNotFound:                     "Not Found",
        StatusMethodNotAllowed:             "Method Not Allowed",
        StatusNotAcceptable:                "Not Acceptable",
        StatusProxyAuthRequired:            "Proxy Authentication Required",
        StatusRequestTimeout:               "Request Timeout",
        StatusConflict:                     "Conflict",
        StatusGone:                         "Gone",
        StatusLengthRequired:               "Length Required",
        StatusPreconditionFailed:           "Precondition Failed",
        StatusRequestEntityTooLarge:        "Request Entity Too Large",
        StatusRequestURITooLong:            "Request URI Too Long",
        StatusUnsupportedMediaType:         "Unsupported Media Type",
        StatusRequestedRangeNotSatisfiable: "Requested Range Not Satisfiable",
        StatusExpectationFailed:            "Expectation Failed",
        StatusTeapot:                       "I'm a teapot",
        StatusMisdirectedRequest:           "Misdirected Request",
        StatusUnprocessableEntity:          "Unprocessable Entity",
        StatusLocked:                       "Locked",
        StatusFailedDependency:             "Failed Dependency",
        StatusTooEarly:                     "Too Early",
        StatusUpgradeRequired:              "Upgrade Required",
        StatusPreconditionRequired:         "Precondition Required",
        StatusTooManyRequests:              "Too Many Requests",
        StatusRequestHeaderFieldsTooLarge:  "Request Header Fields Too Large",
        StatusUnavailableForLegalReasons:   "Unavailable For Legal Reasons",
    
        StatusInternalServerError:           "Internal Server Error",
        StatusNotImplemented:                "Not Implemented",
        StatusBadGateway:                    "Bad Gateway",
        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",
    }
    
    // StatusText returns a text for the HTTP status code. It returns the empty
    // string if the code is unknown.
    func StatusText(code int) string {
        return statusText[code]
    }
    
    本文声明:
    88x31.png
    知识共享许可协议
    本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

    相关文章

      网友评论

        本文标题:知识分享之Golang——分享http包中常用的响应常量文件

        本文链接:https://www.haomeiwen.com/subject/sgoyxrtx.html