HTTP状态码

1. 什么是HTTP状态码?

HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。

状态码的职责:当客户端向服务器端发送请求时,描述返回的请求结果。接祖状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。

2. 有哪些状态码?

状态表的类别:

类别 原因短语
1XX Informational(信息状态码) 接收的请求正在处理
2XX Success(成功状态码) 请求正常处理完毕
3XX Redirection(重定向状态码) 需要进行附加操作以完成请求
4XX Client Error(客户端错误状态码) 服务器无法处理请求
5XX Server Error (服务器错误 状态码) 服务器处理请求出错

3. 2XX 成功

2XX的相应结果表明请求被正常处理了。

200

200 表示客户端发来的请求在服务器端正常处理了。

204

204 表示服务器端处理了客户端发来的请求,但没有资源可以返回。

206

206 表示客户端进行了范围请求,而服务器端成功执行了这部分的 GET 请求。

4. 3XX 重定向

3XX 表示浏览器(客户端)需要执行某些特殊的处理,来正确请求。

301

301 表示永久性重定向。请求的资源已经被分配了新的URL,以后请求资源请用新的URL。

302

302 临时性重定向。表示请求的资源已被分配了新的URL,希望用户(本次)能使用新的URL访问。

303

303 表示请求的资源存在着另一个URL,应该使用 GET 方法定向获得指定资源。

302 和 303 有着相同的功能,但 303 明确表示客户端应该使用 GET 方法获取资源。

304

304 表示客户端发送附带条件的请求,服务器端找到了相应的资源,但附带的条件不符合返回资源的条件。

情景:客户端上一次请求过一次资源,第二次又开始请求新资源,但服务器端资源没有改变,客户端依旧可以使用本地未过期的缓存。(协商缓存)

307

307 临时重定向。和 302 有着相同的含义,(当301,302,303响应状态码返回时,几乎所有的浏览器都会把 POST 改为 GET,并删除请求报文内的主体,之后请求会自动再次发送。301,302标准是禁止 POST 改变成 GET 请求方式,但实际大家都这么做。)
307 会遵守标准,不会将 POST 请求改变成 GET 请求。

5. 4XX

4XX 的响应结果表明客户端是发生错误的原因所在。

400

400 表示客户端发送的请求报文中存在语法错误。

401

401 表示发送的请求需要通过认证。若之前已经进行过请求了,则表示用户认证失败。

403

403 表示没有权限访问资源。

404

404 表示资源未定义,表明服务器上无法找到请求的资源。

6. 5XX

5XX 的响应结果表示服务器本身发生了错误。

500

500 表明服务器端在执行请求时发生了错误。

503

503 表明服务器暂时在忙或正在停机维护中,现在无法处理请求。

posted @ 2021-09-30 11:13  青柠i  阅读(40)  评论(0编辑  收藏  举报