信息响应(100-199)

状态码 状态消息 表示内容
100 Continue 表示目前为止一切正常,客户端应该继续请求,如果已完成请求则忽略。
101 Switching Protocol 表示服务器应客户端升级协议的请求,后去切换协议。
103 Early Hints 允许用户在服务器还在准备响应数据的时候预加载一些资源。

成功响应(200–299)

状态码 状态消息 表示内容
200 OK 表明请求已经成功。默认情况下状态码为 200 的响应可以被缓存。不同请求方式对于请求成功的意义如下:GET:已经取得资源,并将资源添加到响应的消息体中。HEAD:响应的消息体为头部信息。POST:响应的消息体中包含此次请求的结果。TRACE:响应的消息体中包含服务器接收到的请求信息。PUT 和 DELETE 的请求成功通常并不是响应200 OK的状态码而是 204 No Content 表示无内容(或者 201 Created表示一个资源首次被创建成功)。
201 Created 在 HTTP 协议中,201 Created 是一个代表成功的应答状态码,表示请求已经被成功处理,并且创建了新的资源。新的资源在应答返回之前已经被创建。同时新增的资源会在应答消息体中返回,其地址或者是原始请求的路径。这个状态码的常规使用场景是作为 POST 请求的返回值。
202 Accepted 响应状态码 202 Accepted 表示服务器端已经收到请求消息,但是尚未进行处理。但是对于请求的处理却是无保证的,即稍后无法通过 HTTP 协议给客户端发送一个异步请求来告知其请求的处理结果。这个状态码被设计用来将请求交由另外一个进程或者服务器来进行处理,或者是对请求进行批处理的情形。
203 Non-Authoritative Information 表示请求已经成功被响应,但是获得的负载与源头服务器的状态码为 200 (OK) 的响应相比,经过了拥有转换功能的 proxy(代理服务器)的修改。
204 No Content 表示该请求已经成功了,但是客户端客户不需要离开当前页面。默认情况下 204 响应是可缓存的。一个 ETag 标头包含在此类响应中。使用惯例是,在 PUT 请求中进行资源更新,但是不需要改变当前展示给用户的页面,那么返回 204 No Content。如果创建了资源,则返回 201 Created 。如果应将页面更改为新更新的页面,则应改用 200 。
205 Reset Content 通知客户端重置文档视图,比如清空表单内容、重置 canvas 状态或者刷新用户界面。
206 Partial Content HTTP 206 Partial Content 成功状态响应代码表示请求已成功,并且主体包含所请求的数据区间,该数据区间是在请求的 Range 首部指定的。
207 Multi-Status 返回资源集合的功能是 WebDAV 协议的一部分,访问网页的浏览器永远不会遇到此状态代码。
208 Already Reported 将资源绑定到多个路径的功能是 WebDAV 协议的扩展,访问网页的浏览器永远不会遇到此状态代码。
226 IM Used 此状态代码由特定客户端使用的自定义服务器发回。

重定向消息(300–399)

状态码 状态消息 表示内容
300 Multiple Choices 表示重定向的响应状态码,表示该请求拥有多种可能的响应,用户代理或者用户自身应该从中选择一个。由于没有如何进行选择的标准方法,这个状态码极少使用。
301 Moved Permanently 请求的资源已经被移动到了由 Location 头部指定的 url 上,是固定的不会再改变,搜索引擎会根据该响应修正。
302 Found 请求的资源被暂时的移动到了由该 HTTP 响应的响应头 Location 指定的 URL 上。浏览器会重定向到这个 URL,但是搜索引擎不会对该资源的链接进行更新。
303 See Other 通常作为 PUT 或 POST 操作的返回结果,它表示重定向链接指向的不是新上传的资源,而是另外一个页面。比如消息确认页面或上传进度页面。而请求重定向页面的方法要总是使用 GET。
304 Not Modified 无需再次传输请求的内容,也就是说可以使用缓存的内容。(Ctrl+F5,强制刷新)
307 Temporary Redirect 临时重定向响应状态码,表示请求的资源暂时地被移动到了响应的 Location 首部所指向的 URL 上。状态码 307 与 302 之间的唯一区别在于,当发送重定向请求的时候,307 状态码可以确保请求方法和消息主体不会发生变化。如果使用 302 响应状态码,一些旧客户端会错误地将请求方法转换为 GET:也就是说,在 Web 中,如果使用了 GET 以外的请求方法,且返回了 302 状态码,则重定向后的请求方法是不可预测的;但如果使用 307 状态码,之后的请求方法就是可预测的。对于 GET 请求来说,两种情况没有区别。
308 Permanent Redirect 表示重定向的响应状态码,说明请求的资源已经被永久的移动到了由 Location 首部指定的 URL 上。浏览器会进行重定向,同时搜索引擎也会更新其链接。

客户端错误响应(400–499)

状态码 状态消息 表示内容
400 Continue 表示服务器因某些被认为是客户端错误的原因(例如,请求语法错误、无效请求消息格式或者欺骗性请求路由),而无法或不会处理该请求。
401 Unauthorized 客户端错误,指的是由于缺乏目标资源要求的身份验证凭证,发送的请求未得到满足。
402 Payment Required 一个被保留使用的非标准客户端错误状态响应码。
403 Forbidden 客户端错误,指的是服务器端有能力处理该请求,但是拒绝授权访问。这个状态类似于 401,但进入 403状态后即使重新验证也不会改变该状态。该访问是长期禁止的,并且与应用逻辑密切相关(例如没有足够的权限访问该资源)。
404 Not Found 服务器无法找到所请求的资源,返回该响应的链接通常称为坏链(broken link)或死链(dead link)。404 状态码并不能说明请求的资源是临时还是永久丢失。如果服务器知道该资源是永久丢失,那么应该返回 410(Gone)而不是 404。
405 Method Not Allowed 服务器禁止了使用当前 HTTP 方法的请求。
406 Not Acceptable 表示客户端错误,指代服务器端无法提供与 Accept-Charset 以及 Accept-Language 消息头指定的值相匹配的响应。
407 Proxy Authentication Required 客户端错误,指的是由于缺乏位于浏览器与可以访问所请求资源的服务器之间的代理服务器(proxy server )要求的身份验证凭证,发送的请求尚未得到满足。
408 Request Timeout 表示服务器想要将没有在使用的连接关闭。一些服务器会在空闲连接上发送此信息,即便是在客户端没有发送任何请求的情况下。
409 Conflict 表示请求与服务器端目标资源的当前状态相冲突。
410 Gone 说明请求的目标资源在原服务器上不存在了,并且是永久性的丢失。如果不清楚是否为永久或临时的丢失,应该使用404。
411 Length Required 客户端错误,表示由于缺少确定的 Content-Length 首部字段,服务器拒绝客户端的请求。
412 Precondition Failed 客户端错误,意味着对于目标资源的访问请求被拒绝。这通常发生于采用除 GET 和 HEAD 之外的方法进行条件请求时,由首部字段 If-Unmodified-Since 或 If-None-Match 规定的先决条件不成立的情况下。这时候,请求的操作——通常是上传或修改文件——无法执行,从而返回该错误状态码。
413 Content Too Large 请求主体的大小超过了服务器愿意或有能力处理的限度,服务器可能会关闭连接或返回 Retry-After 标头字段。
414 URI Too Long 客户端所请求的 URI 超过了服务器允许的范围。以下是造成这种罕见情况的几种可能原因:当客户端误将 POST 请求当作 GET 请求时,会带有一个较长的查询字符串 (query);当客户端堕入重定向循环黑洞时;当客户端对服务器进行攻击,试图寻找潜在的漏洞时。
415 Unsupported Media Type 一种 HTTP 协议的错误状态代码,表示服务器由于不支持其有效载荷的格式,从而拒绝接受客户端的请求。
416 Range Not Satisfiable 意味着服务器无法处理所请求的数据区间。最常见的情况是所请求的数据区间不在文件范围之内,也就是说,Range 首部的值,虽然从语法上来说是没问题的,但是从语义上来说却没有意义。遇到这一错误状态码时,浏览器一般有两种策略:要么终止操作(例如,一项中断的下载操作被认为是不可恢复的);要么再次请求整个文件。
417 Expectation Failed 客户端错误,意味着服务器无法满足 Expect 请求消息头中的期望条件。
418 I’m a teapot 表示服务器拒绝冲泡咖啡,因为它是个茶壶。该错误是超文本咖啡壶控制协议的参考,和 1998 年愚人节的玩笑。
421 Misdirected Request 请求被定向到一个无法生成响应的服务器,如果连接被重复使用或选择了其他服务,就有可能出现这种情况。
422 Unprocessable Entity 表示服务器理解请求实体的内容类型,并且请求实体的语法是正确的,但是服务器无法处理所包含的指令。
423 Locked 表示暂定目标资源被锁定,即无法访问。
424 Failed Dependency 由于请求的操作依赖于另一个操作,且该操作失败,因此无法在资源上执行该方法。普通 web 服务器通常不会返回此状态代码。
425 Too Early 服务器不愿意冒风险来处理该请求,原因是处理该请求可能会被“重放”,从而造成潜在的重放攻击。
426 Upgrade Required 一种 HTTP 协议的错误状态代码,表示服务器拒绝处理客户端使用当前协议发送的请求,但是可以接受其使用升级后的协议发送的请求。
428 Precondition Required 表示服务器端要求发送条件请求。
429 Too Many Requests 表示在一定的时间内用户发送了太多的请求,即超出了“频次限制”。
431 Request Header Fields Too Large 于请求中的首部字段的值过大,服务器拒绝接受客户端的请求。客户端可以在缩减首部字段的体积后再次发送请求。该响应码可以用于首部总体体积过大的情况,也可以用于单个首部体积过大的情况。这种错误不应该出现于经过良好测试的投入使用的系统当中,而是更多出现于测试新系统的时候。
451 Unavailable For Legal Reasons 一种 HTTP 协议的错误状态代码,表示服务器由于法律原因,无法提供客户端请求的资源,例如可能会导致法律诉讼的页面。

服务端错误响应(500–599)

状态码 状态消息 表示内容
500 Internal Server Error 表示服务器端错误的响应状态码,意味着所请求的服务器遇到意外的情况并阻止其执行请求。这个错误代码是一个通用的“万能”响应代码。有时候,对于类似于 500 这样的错误,服务器管理员会更加详细地记录相关的请求信息来防止以后同样错误的出现。
501 Not Implemented 表示请求的方法不被服务器支持,因此无法被处理。服务器必须支持的方法(即不会返回这个状态码的方法)只有 GET 和 HEAD。
502 Bad Gateway 表示作为网关或代理的服务器,从上游服务器中接收到的响应是无效的。
503 Service Unavailable 表示服务器尚未处于可以接受请求的状态。通常造成这种情况的原因是由于服务器停机维护或者已超载。注意在发送该响应的时候,应该同时发送一个对用户友好的页面来解释问题发生的原因。
504 Gateway Timeout 表示扮演网关或者代理的服务器无法在规定的时间内获得想要的响应。
505 HTTP Version Not Supported 表示服务器不支持请求所使用的 HTTP 版本。
506 Variant Also Negotiates 表示内部服务器配置错误,其中所选变量/变元自身被配置为参与内容协商,因此并不是合适的协商端点。
507 Insufficient Storage 表示服务器不能存储相关内容。准确地说,一个方法可能没有被执行,因为服务器不能存储其表达形式,这里的表达形式指:方法所附带的数据,而且其请求必需已经发送成功。
508 Loop Detected 表示服务器中断一个操作,因为它在处理具有“Depth: infinity”的请求时遇到了一个无限循环。
510 Not Extended 在 HTTP 扩展框架协议中,一个客户端可以发送一个包含扩展声明的请求,该声明描述了要使用的扩展。如果服务器接收到这样的请求,但是请求不支持任何所描述的扩展,那么服务器将使用 510 状态码进行响应。
511 Network Authentication Required 表示客户端需要通过验证才能使用该网络。该状态码不是由源头服务器生成的,而是由控制网络访问的拦截代理服务器生成的。