HTTP錯誤代碼為什麼跳過了402?
400 請求出錯
401 未授權:登錄失敗 403 禁止:禁止執行訪問404 找不到
405 不允許此方法406 不可接受 407 需要代理身份驗證所以402哪裡去了?為什麼要跳過402?有什麼歷史典故嗎?
你還是太嫩了,孩子。
作為一隻喵,大舒的朋友們都知道402是個啥。喔,現在大舒不是喵了,是熊喵。
版權聲明:感謝評論區小惡魔的指正,本文中的圖片原始來源是https://http.cat/。
圖片純屬搞笑,
寫過http代碼僅僅是個頭,他的意思都是人賦予的,
糾正幾個觀點,
402和「當初制定出402的那幫人是怎麼想的,為什麼最後沒有實現,將來到底有沒有一天會實現」是沒有關係的,402是業務邏輯返回的代碼,一定是由程序員來實現,而不是由指定的那幫人來實現。
並不是說payment required就一定要用402,而是402的一般是payment required。
程序員可以不實現402,可以花式實現402。你沒付費,我可以不讓你402,從邏輯上講,我可以讓你403 forbidden,我也可以給你一個302跳轉,我也可以給你一個200界面要求充值,這個並不衝突。
敲黑板,相比於402,我們更需要關注5XX錯誤代碼。
下面是乾貨:
(來源:go包源碼,提供了RFC出處)
// HTTP status codes, defined in RFC 2616.
const (
StatusContinue = 100
StatusSwitchingProtocols = 101
StatusOK = 200
StatusCreated = 201
StatusAccepted = 202
StatusNonAuthoritativeInfo = 203
StatusNoContent = 204
StatusResetContent = 205
StatusPartialContent = 206
StatusMultipleChoices = 300
StatusMovedPermanently = 301
StatusFound = 302
StatusSeeOther = 303
StatusNotModified = 304
StatusUseProxy = 305
StatusTemporaryRedirect = 307
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
StatusInternalServerError = 500
StatusNotImplemented = 501
StatusBadGateway = 502
StatusServiceUnavailable = 503
StatusGatewayTimeout = 504
StatusHTTPVersionNotSupported = 505
// New HTTP status codes from RFC 6585. Not exported yet in Go 1.1.
// See discussion at https://codereview.appspot.com/7678043/
statusPreconditionRequired = 428
statusTooManyRequests = 429
statusRequestHeaderFieldsTooLarge = 431
statusNetworkAuthenticationRequired = 511
)
我覺得這個問題提得很好啊,當初制定出402的那幫人是怎麼想的,為什麼最後沒有實現,將來到底有沒有一天會實現,如果沒希望實現那當初那幫人究竟是怎麼想的。
List of HTTP status codes 4開頭的是client error
402是預留的類似比特幣之類的支付錯誤編碼
沒有跳過 只是不常見http://www.ietf.org/rfc/rfc2616.txt
題主你自己看這個RFC吧,裡面的section 10.4.3HTTP402
付款要求
當前未在 HTTP 協議中實現。
來源:https://msdn.microsoft.com/zh-cn/library/windows/apps/dn423949(v=vs.85).aspx
保留值~也不一定會是payment Require
推薦閱讀:
※iPhone時間調到1970年1月1日0:00就不能再正常開機使用是為什麼?
※如何評價管易ERP軟體?
※專業的雜誌排版設計一般都是用什麼什麼軟體?