美文网首页
前端常用状态码

前端常用状态码

作者: _贺瑞丰 | 来源:发表于2018-03-16 20:35 被阅读158次

基本全部参考:http://web.jobbole.com/87212/


image.png
image.png

结语:究竟为什么状态码重要

我并不完全确定它们真的重要。

Facebook 上有许多聪明人,他们创建了 API 只返回 200

反对挑选指定状态码的基本观点是:现有的状态码对于现代网站/API来说太通用了。它无法让客户端以任何一种有意义的方式处理包含特定应用格式的细节的返回信息 —— 例如表单的哪一个字段校验失败了以及为什么失败了。既然如此,那么为什么要在多余的没什么用的 HTTP 状态码上浪费时间?

如果要给出一个理由,来说明为什么使用特定的状态码很重要,公认的理由是 HTTP 是一个分层的系统,如果响应状态码是有特定含义的,任何代理、缓存或者位于客户端和服务器之间的 HTTP 框架能够更好地工作。我不认为这个理由足够更令人信服,尤其现在每个人都开始将服务迁移到 HTTPS,我们禁止了任何不被服务器直接控制的代理或缓存节点。

然而,我会给你三个理由为什么我认为状态码仍然很重要:

  1. 客户端已经处理(或者可以方便地被扩展以便处理)具有特定行为的不同状态码:
    • 相比于 302 Found301 Moved Permanently 在 Google 等搜索引擎上有更好的 SEO 效果。
    • 301 Moved Permanently 能够被缓存,而 429 Too Many Requests 不被缓存等等。 有的客户端库可以处理 428 Too Many Request,将请求回退并一天之后再次尝试请求。 有的客户端可以用同样的方式处理 503 Service Unavilable
  2. 即使对现代需求不能完全满足,许多状态码依然代表着值得处理的特定响应(因此为什么不直接使用标准状态码?)。
    • 那些本该返回 405 Method Not Allowed 却返回 404 的 API 让我疯狂地想,“我是否敲错了 URL 或者我请求用错了 HTTP method?”
    • 我能告诉你如果我们返回 502 Bad Gateway(上游服务问题)而不是返回让人困惑的 500 Internal Server Error,那么我们曾经能节省许多调试问题的时间。
  3. 不管你信不信,反正我是信了,在广泛被使用的 API 中正在建立一个约定,以返回状态码例如 201 Created429 Too Many Requests 以及 503 Service Unavialable。如果你遵循这个约定,用户将能更方便地使用你的网站/API并且解决任何他们可能遇到的问题。

在这里面,决定什么时候返回何种状态码是最难的,然而有了正确的知识(别再说我不知道,仔细看前面的流程图),挑选一个有意义的状态码变得简单很多。

说明

别去研究 RFC 2616,更别去研究 RFC 2068,真正有用的是 RFC 7231

参考资料

相关文章

  • 前端常用状态码

    基本全部参考:http://web.jobbole.com/87212/ 结语:究竟为什么状态码重要 我并不完全确...

  • HTTP 中的常用状态码及使用场景

    大家好,我是前端西瓜哥。今天我们来学习 HTTP 中的常用状态码及使用场景。 作为前端,经常需要从后端获取数据,所...

  • 常用状态码

    [http://tool.oschina.net/commons?type=5

  • 常用状态码

    一些常见HTTP状态码为: 200 – 服务器成功返回网页 404 – 请求的网页不存在 503 – 服务不可用 ...

  • HTTP常用状态码14种

    HTTP常用状态码 状态码的类别 类别原因短语1XX Informational(信息性状态码)接收的请求正在处...

  • 常用HTTP 状态码

    状态码的分类1XX:Infomational(信息性状态码)接收的请求正在处理2XX:Success(成功状态码)...

  • HTTP常用状态码

    1. 2XX 成功 200 OK表示从客户端发来的请求在服务器端被正常处理了 204 No Content代表服务...

  • http常用状态码

    本质 HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。 1X...

  • HTTP常用状态码

    100:继续 客户端应当继续发送请求。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。10...

  • 常用http状态码

    1开头,信息,服务器收到请求,需要请求者继续执行操作 100(继续),客户端应继续其请求 101(切换协议),服务...

网友评论

      本文标题:前端常用状态码

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