HTTP 状态码

203 阅读6分钟

一. 前言

目前我们所开发涉及到Web服务、API服务等,一般都基于HTTP协议作为传输协议,从开始响应到返回结果,存在状态码的信息,支持我们对本次请求结果的判断。

二. 具体内容

  1. 按照信息功能类别区分

状态码值原因短语中间或结束状态具体含义
1XXInformation(信息状态码)接受的请求正在处理中服务器收到请求,需要客户端继续执行操作
2XXSuccess(成功状态码)请求正常处理完毕操作被服务器成功接受并处理
3XXRedirection(信息状态码)需要附加的操作完成请求重定向,需要进一步操作完成请求
4XXClient Error(客户端错误状态码)服务器无法处理请求请求包含错误语法或者无法处理请求
5XXServer Error(服务端错误状态码)服务器处理请求出错服务器在处理过程中发送错误
  1. 按照状态类型区分

1> 信息状态码

状态码值原因短语具体含义
100Continue服务器收到了初始的请求, 客户端需要继续其请求
101Switching Protocols服务器根据客户端的请求切换请求协议, 只能切换到更高版本的协议

2> 成功状态码

状态码值原因短语具体含义
200Ok请求成功,实体包含了所有请求的资源
201Created成功请求,并创建了新的资源, 比如(PUT)
202Accepted请求已被接受,但服务器还没有对其执行任何动作
203Non-Authoritative Information没有授权信息, 实体首部包含的信息不是来源于源服务器,而是来自资源的副本。服务器根据客户端的请求切换请求协议, 只能切换到更高版本的协议
204No Content服务器处理成功,但未返回内容。在页面没有更新的情况下,确保浏览器显示当前的文档
205Reset Content主要用于浏览器的代码, 负责告知浏览器请求当前页面中的所有HTML元素
206Partial Content服务器成功处理了部分请求

3> 重定向状态码

状态码值原因短语具体含义
300Multiple Choices客户端请求一个实际指向多个资源的URL返回这个状态码;比如服务器上由某个HTML版本有中文,英文等版本,返回这个状态码时会带上一个列表,供用户选择
301Moved Permanently请求的资源已经被永久的移动到到新的URL,返回的响应Location字段会包含新的URL;浏览器会自动定向到新的URL,今后所有的请求都会使用新的URL替代
302Found与301类似,临时移动; 客户端应使用Location首部给出的URL来临时定位资源,将来的请求依使用老得URL
303See Other告知客户端应该使用另一个URL来获取资源, 主要的目的是允许POST请求的响应将客户端定向到某个资源上
304Not Modified客户端所请求的资源未被修改, 服务器返回此状态码, 不任何资源; 客户端通过缓存访问资源, 通过提供一个头信息指出客户端希望只返回指定日期之后修改的资源
305Use Proxy请求所需要的资源,必须通过代理访问; 代理的位置由Location首部给出
306Unused目前已经被废弃掉的状态码
307Temporary Redirect临时重定向, 客户端使用Location首部给出的URL来临时定位资源

4> 客户端错误状态码

状态码值原因短语具体含义
400Bad Request用于告知客户端发送了一个错误的请求, 服务器没法理解
401Unauthorized请求要求用户进行认证
402Payment Required保留状态码,未使用
403Forbidden服务器理解客户端的请求, 但是被服务器拒绝了, 服务器如果想说明为什么拒绝请求, 可以在包含实体的部分对原因进行描述
404Not Found服务器无法根据客户端的请求找到资源(网页), 开发可以设置个性化的页面展示
405Method Not Allowed发起的请求带有服务器不支持的方法
406Not Acceptable服务器无法根据客户端的请求内容完成请求(无法匹配到资源)
407Proxy Authentication Required与401类型,服务器要求客户端使用代理进行授权认证
408Request Timeout服务器等待客户端发送的请求时间过长
409Conflict服务器完成PUT请求时, 请求的资源上发生了冲突
410Gone与404类似,410不同于404的是资源被永久的删除了
411Length Required服务器处理客户端不带Content-Length首部时的处理
412Precondition Failed客户端发起了请求,且其中一个条件失败时
413Request Entity Too Large客户端请求的实体主体部分比服务器能够或者希望处理的长度要长(请求实体过大,服务器可能会拒绝请求,为防止客户端连续请求,服务器可能会关闭连接)
414Request URI Too Long请求的URI过长
415UnSupported Media Type服务器无法理解或者无法支持客户端所发实体内容类型
416Request Range Not Satisfiable客户端请求指定的资源呢某个范围,而此范围无效或者无法满足
417Expectation Failed服务器无法处理Expectation头部信息

5> 服务器错误状态码

状态码值原因短语具体含义
500Internal Server Error服务器内部错误,无法完成请求
501Not Implemented客户端的请求超出服务器的处理范围 (例如:使用了服务器不支持的请求方法)
502Bad Gateway充当代理或者网关的服务器, 从远端服务器收到了无效的响应
503Server Unavailable服务器当前无法提供请求服务(超载或者系统维护),但是将来可以;如果服务器知道什么时资源可变为可用的,在响应中包含一个Retry-After首部
504Gateway Timeout充当代理或者网关的服务器,未能及时收到远端服务器的响应
505HTTP Version Not Supported服务器收到的请求使用了它无法或者不愿意支持的协议版本时, 返回此状态码