这个页面上是 HTTP 超文本传输协议的常见返回状态码的列表。根据互联网上的资料,尤其是相关 RFC 中的描述整理而成。我们会努力保证这个页面上的描述是准确无误的。如果对其中提到的内容有任何问题,欢迎到 V2EX 的 HTTP 节点讨论。
服务器端确认已经收到请求头,向客户端发送 100 Continue,然后客户端就可以继续发送 request body(如果 request body 是必要的话,比如在 POST 请求中)。要触发服务器端的这种行为,那么在发起请求时就需要在 request header 中包括 Expect: 100-continue 这个请求头。如果服务器端在收到了 Expect: 100-continue 之后以 403 Forbidden 或者 405 Method Not Allowed 应答,那么客户端就不应该继续发送 request body。
如果服务器端以 417 Expectation Failed 应答,那么客户端应该在重新发起请求时不要带上 Expect 请求头,因为服务器端无法处理 Expect 请求头。
客户端向服务器端请求切换协议,服务器端同意切换。
一个 WebDAV 请求可能会包括多个涉及文件操作的子请求,需要耗费一些时间才能完成。102 状态码用于告知客户端请求已经收到并且正在处理,但是响应还没有准备好。这样可以防止客户端超时及认为请求没有成功发送。
在完整应答之前,用于向客户端先返回部分 HTTP 响应头用于提示重要资源的预先加载。
表示请求成功完成的标准状态码。根据请求方法(request method)的不同,响应的内容也会不同。对于 GET 请求,那么响应内容就是被请求的资源。对于 POST 请求,响应内容通常是描述或者提供动作完成之后的结果。
请求成功完成,并且结果是一个或者多个新的资源成功创建。如果创建成功的资源位于另外一个 URI 上,那么可以通过一个 Location 响应头部提示客户端跳转到新创建的 URI 上。
请求被接受,但是处理还没有完成。通常用于客户端向服务器端提交批处理任务的情景。比如客户端提交了一个需要耗费很长时间计算的任务,服务器在接到请求但是计算结果还没有得出时可以返回 202 Accepted。之后如果客户端再次请求,数据已经计算完成时,再返回 200 OK。
203 状态码表示请求成功,但是来自源站的 200 OK 内容被中间的代理服务器做了修改。
服务器的响应中不会包括任何内容。但是响应头中可能会有一些有用的新信息,因此客户端依然可以以此更新本地缓存中的响应头。
205 状态码表示服务器已经成功处理了请求,并且希望发起请求的客户端重置其「文档视图」,可能是一个用户可以输入数据的表单(form),记事本(notepad),或者画布(canvas)。这样当客户端收到这个状态码并重置之后,用户就可以继续输入其他新的数据。205 响应的正文部分应该是空的。即 Content-Length 应该为 0。
当客户端向服务器端通过 Range 请求头请求资源的部分内容,服务器成功响应时会使用 206 状态码。如果服务器端不支持 Range 请求,那么可能会以 416 Range Not Satisfiable 状态响应。
这次及将来所有的请求应该发送到服务器通过 Location 头部给出的新的 URI。意味着当前的这个地址已经永久性地转移到新地址。
作为一个茶壶,服务器拒绝被用来煮咖啡。
服务器因为自身的问题而无法满足请求时会给出 5xx 系列的状态码。
服务器不支持被请求的 HTTP 协议版本。
非常流行的 Web 服务器软件 NGINX 对 4xx 系列的状态进行了一些扩展,用于描述客户端请求中的问题。
NGINX 常用于反向代理其他 Web 服务,因此你有可能会在 NGINX 的日志中看到这些 NGINX 专有的状态码。
NGINX 的内部状态码,用于告知 Web 服务器不要向客户端返回任何信息(包括不会返回任何响应头部 response header)并立即关闭链接。
客户端发送的请求头部(request header)太长。
对 400 Bad Request 的扩展,在客户端提供了不合法的证书时会返回 495 状态码。
对 400 Bad Request 的扩展,在需要客户端提供证书但是客户端未提供时会返回 496 状态码。
客户端错误地将 HTTP 明文请求发送到 HTTPS 端口时会收到 497 状态码。
在服务器发送响应之前,如果客户端就提前关闭了请求,那么这条请求会收到 499 状态码。
Cloudflare 是互联网上非常流行的 CDN 服务,其对 5xx 系列状态码进行了扩展以描述其和源站(Origin)通讯时遇到的问题。
源站服务器向 Cloudflare 返回了一个空的,或者未知的,或者无法解释的响应。
源站服务器无法连接。
Cloudflare 与源站服务器 TCP 握手过程超时。
Cloudflare 无法找到源站服务器。比如,可能是在 Cloudflare DNS 中指定了错误的源站服务器地址。
Cloudflare 能够和源站完成 TCP 连接,但是在等待源站返回一个 HTTP 响应时超时。
Cloudflare 在和配置了 SSL/TLS 的源站建立加密连接时失败。
源站的 SSL 证书无法通过 Cloudflare 的有效性验证。
Cloudflare could not validate the SSL certificate on the origin web server.527 错误意味着 Cloudflare 和源站的 Railgun 服务器的连接遇到问题。常见的原因是防火墙干扰或者网络丢包。
530 错误通常会和一个 Cloudflare 专有的 1xxx 错误同时给出。
英文 | 中文 |
---|---|
Status Code | 状态码 |
Request | 请求 |
Response | 响应 |
Request Method | 请求方法 |
Request Header | 请求头 |
Response Header | 响应头 |
RFC | Request For Comment 缩写,互联网技术标准的定义文档 |