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 表明服务器暂时在忙或正在停机维护中,现在无法处理请求。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步