1. 状态码概述
| 类别 | 原因短语 | |
|---|---|---|
| 1XX | Informational(信息状态码) | 接受的请求正在处理 |
| 2XX | Success(成功状态码) | 请求正常处理完毕 |
| 3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 |
| 4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 |
| 5XX | Server Error(服务器错误状态码) | 服务器处理请求错误 |
只要遵循状态码类别的定义,即使改变RFC2616中定义的状态码,或服务器端自行创建状态码都没问题
仅记录在RFC2616的状态码就有40种,加上WebDAV(Web-based Distributed Authoring and Versioning)和附加HTTP状态码等扩展,数量高达60+,但常用的大概只有如下14种。
2. 2XX 成功
| code | reason-phrase | description |
| 200 | OK | 请求被正常处理 |
| 204 | No Content | 请求已成功处理,但返回的响应报文中不包含实体主体部分 |
| 206 | Partial Content | 客户端进行范围请求,服务器成功执行这部分的GET请求 |
3. 3XX 重定向
| code | reason-phrase | description |
| 301 | Moved Permanently | 永久性重定向 表示请求的资源已被分配了新的URI |
| 302 | Found | 临时性重定向 表示请求的资源被临时分配到了新的URI |
| 303 | See Other | 与302类似 但303明确表示客户端应采用GET方法获取资源 |
| 304 | Not Modified | 客户端发送附带条件的请求 但因不满足条件 直接返回304 不包含响应主体 |
| 307 | Temporary Redirect | 临时重定向 不会从POST变为GET |
注:304虽然被划分到3XX类别里,但和重定向没有关系
附带条件的请求是指采用GET方法的请求报文中包含If-Match, If-Modified-Since, If-None-Match, If-Range, If-Unmodified-Since中任一首部
4. 4XX 客户端错误
| code | reason-phrase | description |
| 400 | Bad Request | 表示错误产生在客户端 请求报文中存在语法错误 |
| 401 | Unauthorized | 表示发送的请求需要通过HTTP认证/用户认证失败 |
| 403 | Forbidden | 表示对请求资源的访问被服务器拒绝了 服务器可选择给出拒绝原因 |
| 404 | Not Found | 表示服务器上未找到请求的资源 也可以在服务器拒绝请求且不想给出原因时使用 |
5. 5XX 服务器错误
| code | reason-phrase | description |
| 500 | Server Internal Error | 表明服务器在执行请求时发生了错误 存在bug或临时故障 |
| 503 | Service Unavailable |
表明服务器暂时处于超负载/正在进行停机维护 现在无法处理请求 |
补充:返回503状态码时,如果事先得知恢复服务时间 最好写入Retry-After首部字段返回给客户端
本文详细介绍了HTTP状态码的五大类别及其含义,包括信息状态码、成功状态码、重定向状态码、客户端错误状态码和服务器错误状态码,并重点解读了14种常用状态码的具体应用场景。

被折叠的 条评论
为什么被折叠?



