用漫画的方式向你解释 http 状态码

用情人节漫画来解释 HTTP 状态码

情人节将近,告白季伊始,只愿得君一人心 。回答可能是简单的 「是」或 「否」,也有可能是神秘的 「我并没有那么想你,但是我们明天可以喝一杯咖啡吗?」

这就带来了 HTTP 状态码(超文本传输协议)。当一个URL 被输入到浏览器里面,一个请求就被发送出去给服务器,浏览器也在等待一个答案,就像我们的场景。这些答案以 HTTP 状态码的形式出现,它是一个映射到答案的三位数字。

让我们在想象一下情人节,这里有一些相似的情景。

200s: 快乐的结局

状态码 200s 一般意味着所有的事情都是好的。这个请求被接受,理解,并且服务器没有发生错误。这里 会返回一个 200 状态码.

file

  • 你愿意成为我的小可爱吗?
  • 当然啦

这是对于浏览器 和 服务器,开发者和他的项目是一个完美的结局

300s: 重定向

状态码 300s 意味着客户端必须采取进一步的行动来完成请求。 300s 也是所有重新定向生活的地方。

一个人可能永远看不到 300s 状态码,因为浏览器无需用户输入即可无缝地采取所需的操作。但是,搜索引擎会谨慎的对待300s 状态码,所以开发者应该留意正确的状态码。

file

  • 301 永久移动
  • 我现在在公园住了 ---- :four_leaf_clover:
  • 你愿意做我的小可爱吗?
  • 当然,并且你得更新一下你的地址簿

file

  • 302, 303, 307 暂时移动
  • 我要去公园一会 -- :four_leaf_clover:
  • 你愿意做我的小可爱吗?
  • 当然啦

这里有一些微小的但是 十分重要的 302, 303, and 307的区别 这些区别不能很好的用漫画解释。

总的来说就是,当 302 最初创建时,它被流行的浏览器错误地实现。 为了消除正确的 302 和错误的 302 之间的歧义,创建了 303 和 307 代码。

file

  • 304 没有变化
  • 你愿意做我的小可爱吗?
  • 当然
  • 你愿意做我的小可爱吗?
  • 我的答案没有变化

这个漫画在说明 304s 的好处方面做得并不好,因为「是」比「我的回答没有改变」短得多。

304s 状态码对于浏览器很有用,因为这标志着资源不可以直接从缓存中加载,而不是从服务器上面下载。

400s: 客户端错误

状态码 400s 错误一般是指请求出现问题。这可能是浏览器的问题,或者说使用的 URL 有问题。

file

  • 400 错误请求
  • ?#&834,232.22?dasd
  • 我不知道你在说什么

file

  • 401 未授权
  • 你愿意当我的小可爱吗?
  • 我根本不认识你啊!

file

  • 403 禁止访问
  • 你愿意当我的小可爱吗?
  • 我认识你!你不能和我说话!

file

  • 404 没找到
  • :four_leaf_clover: 在哪里呀 ?
  • 谁?
  • :four_leaf_clover: 曾经存在过吗?

这可能是最著名的错误状态码。虽然很多人理解为「这个资源部不存在」 和「这个资源被移动走了」,但是它确切的意思是 不确定这个资源是否存在或它会返回什么

file

  • 407 需要代理服务器授权
  • 你愿意当我的小可爱吗?
  • 在哪里先等一下!
  • 你先得经过我 -- :four_leaf_clover: 的 父亲的同意

file

  • 408 超时

file

  • 409 冲突
  • 你愿意当我的小可爱吗?
  • 我已经答应别人啦

file

  • 410 丢失
  • :four_leaf_clover: 在哪里呢?
  • 很抱歉, :four_leaf_clover: 消失了!

与(著名的)404 不同,这是一种资源曾经存在的情况,但已被永久删除,并且不会返回。 如果您从网站上永久删除了一个页面,则应该使用 410,而不是 404。

file

  • 426 需要更新
  • 你愿意当我的小可爱吗?
  • emmmm,也许等你长大我就同意啦

500s: 服务器错误

file

file

  • 502 网关错误
  • :four_leaf_clover: ,你愿意做我的情人吗?
  • 好的
  • ....
  • ....
  • 然后呢?
  • 我无法理解你的意思。

file

  • 503 服务暂时不可用
  • 你愿意做我的情人吗?
  • 被异常病毒攻击导致服务繁忙!你能等一会再来吗?

file

  • 504 网关超时
  • 当你向:four_leaf_clover: 问到愿意做我的爱人吗?
  • 好的
  • ...
  • ...
  • 所以?
  • 因为等的太久所以我放弃了

后记

最后,所有人都喜欢的滑稽的状态码是指 1998愚人节的笑话,并且 这个笑话一直持续到现在.

file

HTCPCP服务器是一个茶壶; 由此产生的实体可能短而粗壮。

我希望你快速滚动浏览这篇文章使 HTTP 状态码更有趣。 有关这些状态码等的更多技术解释,请参阅下面的更多内容。

https://developer.mozilla.org/en-US/docs/W...
https://www.addedbytes.com/blog/http-statu...
https://www.digitalocean.com/community/tut...

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://medium.com/@hanilim/http-codes-a...

译文地址:https://learnku.com/laravel/t/13381/expl...

本帖已被设为精华帖!
本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 3
itdream

304s 状态码对于浏览器很有用,因为这标志着资源不可以直接从缓存中加载,而不是从服务器上面下载。
这里好像有问题!

5年前 评论
followyounger

@itdream 意思是不使用缓存,直接请求服务器,对吧。

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!