百科问答小站 logo
百科问答小站 font logo



HTTP错误代码为什么跳过了402? 第1页

  

user avatar   dashu123 网友的相关建议: 
      

你还是太嫩了,孩子。
作为一只喵,大舒的朋友们都知道402是个啥。


喔,现在大舒不是喵了,是熊喵。






版权声明:感谢评论区小恶魔的指正,本文中的图片原始来源是http.cat/






图片纯属搞笑,


写过http代码仅仅是个头,他的意思都是人赋予的,

纠正几个观点,

402和“当初制定出402的那帮人是怎么想的,为什么最后没有实现,将来到底有没有一天会实现”是没有关系的,402是http规定返回的代码,一定是由程序员来实现,而不是由指定的那帮人来实现。

并不是说payment required就一定要用402,而是说,返回值是402的原因是因为payment required。


程序员可以不实现402,可以花式实现402。你没付费,我可以不让你402,从逻辑上讲,我可以让你403 forbidden,我也可以给你一个302跳转到收费界面,我也可以给你一个200界面要求充值,这个并不冲突。如果只是个json接口,那么有些情况下他们甚至在json结构体内自行定义errorCode和errorMessage,接口外部全用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 )     

user avatar   zephix 网友的相关建议: 
      
       HTTP/1.1 402 Payment Required     

402 - 用户请求的内容要求付费,是一个非正式的错误编号

为什么没有正式把402加入标准之中?因为402错误没有太大的实用意义。

当用户请求了付费/会员内容时,相比返回一个“用户请求错误”,把访问者重定向到购买/会员开通页面无疑是更好的解决方法




  

相关话题

  程序员如果当上了爸爸,如何跟孩子介绍自己的职业? 
  浙江某高校选修课要求新媒体账号涨粉 5 万,变现 3 千,说明了什么? 
  如何用数学知识解答「在进行社区大规模核酸检测时,分成几人一组进行混检效率最高」? 
  如何看待杨超越粉丝近期与闻澜文化“对峙”? 
  如何看待李国庆拍卖自己一小时的午餐时间?如果你拍下,你想和他聊点啥? 
  如何评价《原神》中,下雨以后所有的人物都没有打伞的设计? 
  如何看待雷军称第一款小米汽车价格区间为 10 万-30 万元,你能接受吗? 
  如何看待荣耀董事长万飚公开声明今年荣耀研发投入 10 亿美金?这个投入比例怎么样? 
  如何评价轮子哥VCZH在微软十几年还是SDE2? 
  5g是一场资本家的骗局吗? 

前一个讨论
普法战争时德国攻克了法国首都,为什么没有直接吞并法国而是要法国赔钱?
下一个讨论
当初乌克兰、阿拉伯之春那些颜色革命的街头参与者现在看到自己的祖国变成这样会后悔吗?





© 2024-05-12 - tinynew.org. All Rights Reserved.
© 2024-05-12 - tinynew.org. 保留所有权利