在这里插入图片描述
状态码的类别

- 类别 原因短语
1XX Informational(信息性状态码) 接收的请求正在处理
2XX Success(成功状态码) 请求正常处理完毕
3XX Redirection(重定向状态码) 需要进行附加操作以完成请求
4XX Client Error(客户端错误状态码) 服务器无法处理请求
5XX Server Error(服务器错误状态码) 服务器处理请求出错
在这里插入图片描述
以下介绍一些经常使用的状态码。

1 1XX 临时响应

状态码 状态名 说明
100 Continue
继续
请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
101 Switching Protocols
切换协
请求者已要求服务器切换协议,服务器已确认并准备切换。

2 2XX 成功

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

状态码 状态名 说明
200 OK
成功
服务器已成功处理了请求。
204 No Content
无内容
服务器成功处理了请求,但没有返回任何内容。
206 Partial Content
部分内容
服务器成功处理了部分 GET 请求。

HTTP状态码中的204和206分别表示:

204 No Content:

  • 当服务器成功处理了请求,但不需要返回任何内容时,会返回状态码204 No Content。
  • 这通常发生在处理POST请求时,服务器已经成功处理了请求,但在响应中不需要返回任何实体内容。
  • 204状态码通常用于AJAX请求或表单提交后的处理,告诉客户端请求已经成功处理,但不需要更新页面内容。

206 Partial Content:

  • 当客户端发送一个带有Range头部的请求时,请求服务器返回部分内容时,服务器会返回状态码206 Partial Content。
  • 这通常用于客户端请求大文件的部分内容,如视频或音频文件,客户端可以分段请求文件的不同部分,服务器会相应地返回这些部分内容。
  • 206状态码包含一个或多个Range头部字段,指示服务器返回的实体内容的范围。
  • 206状态码允许客户端在下载大文件时,分段请求文件的不同部分,从而支持断点续传或多线程下载等功能。

简而言之,204表示服务器已成功处理请求但不需要返回任何内容,而206表示服务器已经返回了请求的部分内容。

3 3XX 重定向

3XX 响应结果表明浏览器需要执行某些特殊的处理以正确处理请求。

状态码 状态名 说明
301 Moved Permanently
永久移动
请求的网页已永久移动到新位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。浏览器收到301状态码后,会把原本请求的网址自动替换成新的网址,并将这个新网址缓存起来,以后再次访问这个网址时都会直接跳转到新的地址。
302 Found
临时移动
服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。浏览器收到302状态码后,会把原本请求的网址替换成新的网址,但不会缓存这个新网址,下次再次访问时仍然会请求原本的网址。
303 See Other
查看其他位置
请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
304 Not Modified
未修改
自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。
307 temporary Redirect
临时重定向
服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

3.1 301 Moved Permanently

在这里插入图片描述
在这里插入图片描述
301:代表永久重定向,也就是说第一次请求拿到长链接后,下次浏览器再去请求短链的话,不会向短网址服务器请求了,而是直接从浏览器的缓存里拿,这样在 server 层面就无法获取到短网址的点击数了,如果这个链接刚好是某个活动的链接,也就无法分析此活动的效果。所以我们一般不采用 301。

3.2 302 Found

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
302:代表临时重定向,也就是说每次去请求短链都会去请求短网址服务器(除非响应中用 Cache-Control 或 Expired 暗示浏览器缓存),这样就便于 server 统计点击数,所以虽然用 302 会给 server 增加一点压力,但在数据异常重要的今天,这点代码是值得的,所以推荐使用 302!

3.3 303 See Other

在这里插入图片描述
在这里插入图片描述

3.4 304 Not Modified

在这里插入图片描述

3.7 307 Temporary Redirect

在这里插入图片描述

4 4XX 客户端错误

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

状态码 状态名 说明
400 Bad Request
错误请求
服务器不理解请求的语法。服务器无法理解客户端的请求,因为请求报文中有语法错误或参数无效。HTTP 请求本质上是一段纯文本,它有严格的结构。1 请求行:包含方法、URL、HTTP 版本;2 请求头:一堆键值对,描述元数据(如主机、内容类型、长度等);3 请求体:可选数据(通常在 POST、PUT 等请求中携带)。实际场景:你手写 HTTP 请求通过 telnet 连接,打错了命令。
401 Unauthorized
未授权
请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
403 Forbidden
禁止
服务器拒绝请求,没有权限访问当前请求的资源。
404 Not Found
未找到
服务器找不到请求的网页。
405 Method Not Allowed
方法禁用
禁用请求中指定的方法。
412 Precondition Failed
未满足前提条件
服务器未满足请求者在请求中设置的其中一个前提条件。
417 Expectation Failed
未满足期望值
服务器未满足"期望"请求标头字段的要求.

4.0 400 Bad Request

在这里插入图片描述

4.1 401 Unauthorized

在这里插入图片描述
在这里插入图片描述

4.3 403 Forbidden

在这里插入图片描述

4.4 404 Not Found

在这里插入图片描述
在这里插入图片描述

4.5 405 Method Not Allowed

pass

4.12 412 Precondition Failed

pass

4.17 417 Expectation Failed

pass

5 5XX 服务器错误

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

状态码 状态名 说明
500 Internal Server Error
服务器内部错误
服务器遇到错误,无法完成请求。
501 Not Implemented
尚未实施
服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。
502 Bad Gateway
错误网关
服务器作为网关或代理,从上游服务器收到无效响应。
503 Service Unavailable
错误网关
服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。
504 Gateway Timeout
网关超时
服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505 HTTP Version Not Supported
HTTP 版本不受支持
服务器不支持请求中所用的 HTTP 协议版本。

5.0 500 Internal Server Error

在这里插入图片描述

5.1 501 Not Implemented

pass

5.2 502 Bad Gateway

pass

5.3 503 Service Unavailable

在这里插入图片描述

5.4 504 Gateway Timeout

pass

5.5 505 HTTP Version Not Supported

pass
在这里插入图片描述

[图片源于《图解HTTP》]

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐