For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
“200、201、301、302、404”这些数字是什么意思?在普通人看来,这好像是一道很难解数学题。但是在学HTTP的人看来,这些数字也就是状态码是再熟悉不过的了。那么,这么多的状态码到底应该用在什么情况下,有没有简单直接的办法可以帮助我们识别使用这些状态码,让我们能够直接决定该用哪些,哪些可以直接被排除?
一般看来,响应代码应该分成三部分:标准的、有用的、无关紧要的。“有用的”意思是说,当你返回这些状态码的话,会对使用你的网站或者API有帮助或者能够解决问题。“无关紧要”的意思是说,你可以忽略这些状态码,用一个更加通用的状态码代替。
那么,我们为什么要必须使用状态码:
首先,客户端已经处理(或者可以方便地被扩展以便处理)具有特定行为的不同状态码:
相比于302 Found,301 Moved Permanently在Google等搜索引擎上有更好的SEO效果。
301 Moved Permanently能够被缓存,而429 Too Many Requests不被缓存等等。有的客户端库可以处理428 Too Many Request,将请求回退并一天之后再次尝试请求。有的客户端可以用同样的方式处理503 Service Unavilable。
其次,即使对需求不能完全满足,许多状态码依然代表着值得处理的特定响应。比如说,那些本该返回405 Method Not Allowed却返回404的API会让我们产生这样的疑问“我是否敲错了URL或者我请求用错了HTTP method?”如果我们返回502 Bad Gateway(上游服务问题)而不是返回让人困惑的500 Internal Server Error,那么我们就能节省许多调试问题的时间。
在广泛被使用的API中正在建立一个约定,以返回状态码例如201 Created,429 Too Many Requests以及503 Service Unavialable。如果你遵循这个约定,用户将能更方便地使用你的网站或者API,并且能够解决任何他们可能遇到的问题。
当你学习状态码的时候,你就会发现其实决定什么时候返回哪一个状态码是非常难的。但是如果你真正理解了这些状态码的含义,问题就很容易解决了。如果你学习HTTP还觉得有困难的话,就来报名达内Web培训班吧,资深培训老师会教你专业的知识。