HTTP 状态码指南及使用方法

1xx 系列:消息

100 Continue
初始请求已接受,应继续发送请求的其余部分

101 Switch Protocols
服务器将切换协议(比如建立 WebSocket)

2xx 系列:成功

200 OK
请求成功

201 Created
已创建,成功请求并创建了新资源

202 Accepted
已接受,但未处理完成

204 No Content
请求已成功,但未返回数据(比如使用 PUT 方法上传新资源,或使用 DELETE 方法删除服务器资源)

206 Partial Content
返回部分资源(实现 HTTP 断点续传)(响应报文中包含由 Content-Range 指定范围的实体内容)

3xx 系列:重定向

300 Mutiple Choice
客户端请求对应有多种响应,用户应继续选择其中一个

301 Moved Permanently
永久重定向,浏览器会自动访问新 URL

302 Found
临时重定向(没有规定用哪种 Method,被细分为 303 和 307)(登录拦截)

303 See Other
临时重定向,使用 GET 重定向请求

307 Temporary Redirect
临时重定向,使用同样的 Method 重定向请求

304 Not Modified
原缓冲可继续使用(客户端提供 If-Modified-Since/etag,服务器返回 Last-Modified/if-none-match)

305 Use Proxy
客户端应通过代理请求资源,由于安全原因此状态码没有普及

4xx 系列:客户端错误

400 Bad Request
请求出现语法错误

401 Unauthorized
未经授权,但可以通过授权再次请求

403 Forbidden
禁止访问

404 Not Found
找不到资源

405 Method Not Allowed
请求方法不适用

406 Not Acceptable
服务器无法根据请求内容完成请求,MIME 类型与客户端指定的 Accpet 头不兼容

5xx 系列:服务端错误

500 Internal Server Error
服务器错误

501 Not Implemented
服务器不支持实现请求所需要的功能(比如客户发出了服务器不支持的 PUT 请求)

502 Bad Gateway
充当网关或代理的服务器收到远程服务器错误

503 Service Unavailable
由于超载或系统维护,服务器暂时无法处理客户端的请求,服务器可能同时返回 Retry-After 头

504 Gateway Timeout
充当网关或代理的服务器不能及时收到远程服务器的响应

505 HTTP Version Not Supported
服务器不支持请求使用的 HTTP 版本

使用方法

  • 建立新的 WebSocket 连接时会先走一次 HTTP 协议,返回 101 状态码。
  • 直接访问 jd.com,浏览器与服务器的状态为:
-> 302 (Location: http://www.jd.com/) 
-> 307 (Location: https://www.jd.com/) 
-> 200
  • 用户没有登录时访问需要登录的页面,可使用 302 重定向到登录页面。
  • 用户发送的请求缺少必要的参数,比如登陆时没有密码,可返回 400 状态码。
  • 普通用户访问管理员页面,可返回 403 状态码。
  • 应使用 POST 请求却使用了 GET 请求,可返回 405 状态码。
  • 访问国外某些网站时由于众所周知的原因,可能会出现 502 / 504 状态码。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,259评论 19 139
  • HTTP状态码的分类 HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的...
    薄凉_简书阅读 594评论 0 1
  • HTTP状态码(HTTP Status Code)表示http服务器对与请求HTTP响应状态的3位数字代码。它由 ...
    BeeNoisy阅读 1,878评论 0 8
  • 前言 HTTP状态码是用以表示[网页服务器]响应状态的3位数字代码,最常见的404错误就是其中之一通过状态码我们能...
    无聊数藏家阅读 768评论 0 4
  • 网络请求是iOS项目的一个大部分,而且大部分的iOS的项目的网络请求是根据AFN进行的二次封装,我们查看返回的结果...
    FR_Zhang阅读 7,008评论 15 46