状态码的类别
- | 类别 | 原因短语 |
---|---|---|
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 错误请求 | 服务器不理解请求的语法。 |
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》]