HTTP协议之状态码详解(1)


HTTP状态码,我都是现查现用。 我以前记得几个常用的状态码,比如200,302,304,404, 503。 一般来说我也只需要了解这些常用的状态码就可以了。 如果是做AJAX,REST,网络爬虫,机器人等程序。还是需要了解其他状态码。 本文我花了一个多月的时间把所有的状态码都总结了下,内容太多,看的时候麻烦耐心点了。

HTTP状态码的学习资料到处都有,但是都是理论上讲解。 本文介绍HTTP协议中的HTTP状态码(HTTP Status Code), 会对大部分的状态码都进行了详细的实例讲解。

要了解状态码,应该在实例中去理解状态码的意义,否则看了也会忘记的。

用Fiddler工具可以查看HTTP Request和Response, 还可以方便地查看Response中的状态码, 如果不熟悉这个工具,可以先参考Fiddler教程】

为了重现HTTP 状态码,本文会使用Fiddler Composer来创建“特殊的HTTP Request”.可以参考Fiddler Composer创建和发送HTTP Request】

什么是HTTP状态码

HTTP状态码的作用是:Web服务器用来告诉客户端,发生了什么事。

状态码位于HTTP Response 的第一行中,会返回一个”三位数字的状态码“和一个“状态消息”。 ”三位数字的状态码“便于程序进行处理, “状态消息”更便于人理解。

如下图, 当客户端请求一个不存在的URL的时候, Web服务器会返回 “HTTP/1.1 404 Not Found” 告诉浏览器客户端。 服务器无法找到所请求的URL。

状态码分类

HTTP状态码被分为五大类, 目前我们使用的HTTP协议版本是1.1, 支持以下的状态码。随着协议的发展,HTTP规范中会定义更多的状态码。

小技巧: 假如你看到一个状态码518, 你并不知道具体518是什么意思。 这时候你只要知道518是属于(5XX,服务器错误就可以了)

状态码分类

常见的状态码

一般人只需要了解以下常见的状态码就够了, 如果你想了解更多, 请继续往下看。

常见的状态码

1XX信息性状态码

这些状态码是HTTP 1.1引入的。 对于这些状态码的价值还存在争论 (我个人从来没见过这些状态码, 也没有理解这些状态码。)

1XX信息性状态码

2XX成功状态码

客户端发起请求时, 这些请求通常都是成功的。服务器有一组用来表示成功的状态码,分别对应于不同类型的请求。

2XX成功状态码


相关内容