HTTP 状态码负责表示客户端 HTTP 请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。
状态码的作用
状态码告知从服务器端返回的请求结果,职责是当客户端向服务器端发送请求时,描述返回的请求结果。借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。
状态码的组成及类别
状态码由3位数字和原因短语组成。数字中的第一位指定了响应的类别,后两位无分类。常见的响应类别有如下5种:
| 类别 | 原因短语 | |
|---|---|---|
| 1XX | Informational(信息性状态码) | 接收的请求正在处理 |
| 2XX | Success(成功状态码) | 请求正常处理完毕 |
| 3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 |
| 4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 |
| 5XX | Server Error(服务器错误状态码) | 服务器处理请求出错 |
只要遵守状态码类别的定义,即使改变 RFC2616 中定义的状态码,或服务器端自行创建状态码都没问题。仅记录在 RFC2616 上的 HTTP 状态码就达 40 种,若再加上WebDAV(Web-based Distributed Authoring and Versioning,基于万维网的分布式创作和版本控制)(RFC4918、5842) 和附加 HTTP 状态码(RFC6585)等扩展,数量就达 60 余种。别看种类繁多,实际上经常使用的大概只有 14 种。
常用的HTTP状态码
| HTTP状态码 | 描述 |
|---|---|
| 200 OK | 请求被正常处理 |
| 204 No Content | 请求处理成功,但没有资源可返回 |
| 206 Partial Content | 范围请求并成功返回 |
| 301 Moved Permanently | 永久性重定向 |
| 302 Found | 临时性重定向 |
| 303 See Other | 与320 Found有相同功能,但明确表示客户端应采用GET方法获取资源 |
| 304 Not Modified | 客户端发送附带条件的请求,服务器允许请求访问资源,但未满足条件 |
| 307 Temporary Redirect | 与320 Found有相同含义,但会遵照浏览器标准,不会从 POST 变成 GET |
| 400 Bad Request | 请求报文中存在语法错误 |
| 401 Unauthorized | 请求需通过HTTP认证(若之前已请求1次则表示认证失败) |
| 403 Forbidden | 请求资源的访问被服务器拒绝了 |
| 404 Not Found | 服务器上无法找到请求的资源 |
| 500 Internal Server Error | 服务器端在执行请求时发生了错误 |
| 503 Service Unavailable | 服务器暂时处于超负载或正在进行停机维护,无法处理请求 |
本人能力有限,如果此博文中有哪里讲得让人难以理解,欢迎留言交流,若有讲解错的地方欢迎指出,大家互相学期,共同进步!

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



