常用状态码速查表

CodeReason-Phrase
100Continue
101Switching Protocols
200OK
201Created
202Accepted
203Non-Authoritative Information
204No Content
205Reset Content
206Partial Content
300Multiple Choices
301Moved Permanently
302Found
303See Other
304Not Modified
305Use Proxy
307Temporary Redirect
400Bad Request
401Unauthorized
402Payment Required
403Forbidden
404Not Found
405Method Not Allowed
406Not Acceptable
407Proxy Authentication Required
408Request Timeout
409Conflict
410Gone
411Length Required
412Precondition Failed
413Payload Too Large
414URI Too Long
415Unsupported Media Type
416Range Not Satisfiable
417Expectation Failed
426Upgrade Required
500Internal Server Error
501Not Implemented
502Bad Gateway
503Service Unavailable
504Gateway Timeout
505HTTP Version Not Supported

Informational 1xx

1xx(Informational) 状态码类别表示在完成所请求的动作并发送最终响应之前的通信连接状态或请求进度的临时响应。1xx 响应由状态行之后的第一个空行(空行表示header 部分的结尾)终止。 由于HTTP/1.0 没有定义任何1xx状态码,因此服务器不得向HTTP/1.0客户端发送1xx响应。

即使客户端没有预期到,客户端也必须能够解析在收到最终响应之前所收到的一个或多个1xx响应,即客户端必须能处理所有1xx响应。用户代理可以忽略意外的1xx响应。

代理必须转发1xx响应,除非是代理本身请求生成1xx响应。 例如,如果代理在转发请求时添加“Expect:100-continue”字段,则不需要转发相应的100(Continue)响应。

100 继续

表示服务器已经接收到了请求头,并且客户端应该继续发送请求体。

101 切换协议

表示请求方已经要求服务器切换协议,并且服务器已经接受并会进行处理。

Successful 2xx

2xx(成功)类状态码表示客户端的请求已成功接收,设置并被接受。

200 正常

HTTP 请求成功的标准应答。实际的应答内容由请求使用的方法来决定。

201 已创建

请求已经被接受,并且请求所对应的资源已经被创建。

202 接受

请求已被接受,尚未完成处理,也有可能会被拒绝。

204 无内容

在成功处理请求后服务器并没有返回任何实体内容。

207 多重状态

依照子请求的数量的不同,消息体包含不同的响应代码。

Redirection 3xx

3xx(重定向)类状态码表示用户代理需要采取进一步的操作才能完成请求。

300 多重选择

表示被请求的资源可以提供多种选项让客户端进行选择

301 永久移除

该请求应当被定向到给定的URI(统一资源定位符)

302 找到

这是一个工业实践和标准相互矛盾的例子。一些Web应用和框架会使用302状态码

303 参见其他信息

对应当前请求的响应可以使用GET方法从另一个URI获取

304 未修改

表示资源自上次请求以来没有被改变。

305 使用代理

(译注:被请求的资源必须通过指定的代理才能被访问) 大多数HTTP客户端不会正确响应这个状态码,主要是出于安全性的原因

307 临时重定向

在这种情况下,请求会从另外的URI响应但是未来的请求仍会使用原始的URI

Client Error 4xx

4xx(客户端错误)类状态码表示客户端似乎有错误。 除了响应HEAD请求之外,服务器应该发送一个表示,其中包含有关错误情况的说明,以及它是否是临时或永久条件。 这些状态码适用于任何请求方式。 用户代理应该向用户显示任何包含的表示。

400 错误请求

因为错误的语法,请求不能完成

401 未授权

当需要授权,但授权失败或还没有授权时返回的状态码

402 需要支付

该状态码是为了将来可能的需求而预留的。这个代码通常不使用,但是其最初的意图是可以被某种电子货币所使用。

403 禁止

请求有效,但是服务器拒绝响应它。

404 没有找到

请求的资源不能找到,但是将来也许可用。

405 方法不允许

请求某资源时使用的请求方法不能被该资源所支持。

406 无法访问

被请求资源能够产生的内容不满足请求头中指定的类型。

408 请求超时

服务器等待请求超时

409 冲突

因为请求中存在冲突导致请求无法被处理

410 已删除

被请求的资源已不可用,同时后续也不再可用。

411 需要数据长度

请求所对应的资源需要指明长度,但请求中并没有包含长度。

413 请求实体过大

其请求数据实体过大,超过服务器处理能力。

414 请求URI过长

URI过长,服务器不能处理

416 请求范围不符合要求

客户端请求部分文件,但是服务器并不能提供这个范围值。

417 期望失败

服务器不能满足请求头重指定的要求。

418 我是茶壶

这是个愚人节玩笑,其含义是:当客户端给一个茶壶发送泡咖啡的请求时,茶壶就返回一个418错误状态码,表示“我是一个茶壶”。IETF在1998年愚人节时发布的一个笑话RFC。参考RFC 2324 - Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0)超文本咖啡壶控制协议。在实际HTTP服务器中不会实现该状态码。

422 不可处理的请求实体

请求格式正确但是因为存在语意错误无法响应。

423 上锁

当前资源被上锁

424 错误依赖关系

因为之前的请求失败而导致了本次请求失败

425 乱序集合

在WebDav Advanced Collections 草案中定义

426 需要更新

客户端应该切换到不同的协议

429 请求过多

用户在指定时间内发送的请求过多。

431 请求头过大

因为请求中的单个域过大、或者全部域全加起来过大。

444 没有响应

在Nginx记录中使用,表示服务器没有向客户端返回信息并且已经关闭了连接

450 被Windows家长控制屏蔽

微软所扩展的一个状态码

Server Error 5xx

5xx(服务器错误)状态码类表示服务器知道它已经错误或无法执行请求的方法。 除了响应HEAD请求之外,服务器应该发送一个表示,其中包含有关错误情况的说明,以及它是临时还是永久条件。 用户代理应显示任何包含的表示给用户。 这些响应代码适用于任何请求方法。

500 服务器内部错误

当没有其他更加确切的信息可以给出时,给出的一个一般性错误信息。

502 错误网关

作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应

503 服务不可用

服务器当前不可用。

506 变元协商

请求的透明内容协商导致循环引用

507 储存空间不足

服务器无法存储完成请求所必须的内容。

508 检测到循环

服务器在处理请求时发现一个无限循环

509 超过带宽限制

尽管很多服务器使用该协议,但其并没有在任何RFC中说明

599 网络连接超时错误

这个状态码没有在任何RFC中说明,但微软公司在用。

参考

  1. Hypertext Transfer Protocol (HTTP/1.1): Overview of Status Codes
  2. 喵星人教你记 HTTP 状态码
  3. Http错误代码418有什么典故?