zoukankan      html  css  js  c++  java
  • Http 状态码 1xx 2xx 3xx 4xx 5xx 还搞不懂?直接撸 HTTP Protocol 吧

    HTTP Protocol 1.1 RFC 2616 的 PDF 文档地址:https://www.w3.org/Protocols/HTTP/1.1/rfc2616.pdf

    为什么突然想到要放 HTTP protocol 上来?挺巧的,刚刚逛博客园的时候好像服务器出了点问题,报了 502 bad gateway,想起去年去了某家境外电商面试问到了 http status codes,当时还没有收藏到 w3org HTTP protocol,所以像我这样懒得死记硬背的人居然在这块连记一两个常用的 http status codes 的来源都没有(现在网上不负责任的出处实在太多了),因此当时问完这个 http code 面试就直接结束了,记忆犹新......

    PDF 前面是目录,拉到目录就可以看到 1xx ~ 5xx 这五种数字开头的错误码分类到底是什么。如果你用是 Chrome 浏览器,用目录提示的页码快速查阅: ctrl + F 输入 “page 10” 回车就可以跳到第 10 页,因为 PDF 文档每页都有注脚而且可以被搜到。

    在学习 http status codes 时,我觉得仍然不应该死记硬背。就如 page 45 页提到的“503 Service Unavailable”,它可能的原因是“服务过载后的拒绝策略响应”、“服务正在维护”,在下面的 note 注释中还提到另一种可能“虽然服务器没有过载,但它的拒绝策略已经启动,所以后续连接都可能被返回 503 status code message”,这台服务器可能还有其他的资源服务要运行,因此它的拒绝策略在资源利用达到某一个阈值后直接开启,避免影响其他服务的性能。

    所以其实要分析所有的 http status code 也算是一个不小的工程,举个例子,503 状态码其中一个原因是“服务器正在维护”,“维护”到底是个什么意思?服务实例下线?这种情况下可不可以返回其它的状态码比如 504 Gateway Timeout?而在 504 状态码的 note 中也提到某些服务器在 504 状态发生时会选择回复 400 或 500 状态码,这又是另一种实现的选择,所以死记硬背在 http status code 上是根本行不通的......除非你还是入行一年以内的初级开发者,这时候背一些API和原理会让你在面试时听感更好,面试官会觉得你真的有在学习并掌握了一些东西......

  • 相关阅读:
    Codeforces 451A Game With Sticks
    POJ 3624 Charm Bracelet
    POJ 2127 Greatest Common Increasing Subsequence
    POJ 1458 Common Subsequence
    HDU 1087 Super Jumping! Jumping! Jumping!
    HDU 1698
    HDU 1754
    POJ 1724
    POJ 1201
    CSUOJ 1256
  • 原文地址:https://www.cnblogs.com/christmad/p/11474051.html
Copyright © 2011-2022 走看看