404, 502, 503, 相信很多浏览网页有一定时间的人对这些代码都不会陌生,很多人都会知道 —— 404 是找不到网页了, 301 是重定向了,或者还会知道 502 是代表服务器杯具了,不过, 100 你知道是什么吗? 414 又是什么意思呢?本文介绍的,正是这些各种各样的代码,包括一些平常较为少见的。
在介绍各种代码之前,首先科普一下,上面的各种代码,是 HTTP 状态码,用以表示网页服务器 HTTP 响应状态的3位数字代码,包含五种状态状态, 1xx 代表消息, 2xx 代表成功, 3xx 代表重定向, 4xx 代表请求错误, 5xx 代表服务器错误。下面 Kayo 为大家详细介绍各个状态码的意义。其中下面各行开头的数字代表各状态码,括号内的内容表示状态信息及其中文翻译,接着是代码含义。
100 (Continue/继续):请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。HTTP 1.1 中新加入。
101 (Switching Protocols/切换协议):服务器已经理解了客户端的请求,并将通过 Upgrade 消息头通知客户端采用不同的协议来完成这个请求。HTTP 1.1 中新加入。
200 (OK/正常):请求已成功,请求所希望的响应头或数据体将随此响应返回。
201 (Created/已创建):表示服务器在请求的响应中建立了新文档;应在定位头信息中给出它的URL。
202 (Accepted/接受):已经接受请求,但处理尚未完成。
203 (Non-Authoritative Information/非官方信息):表示文档被正常的返回,但是由于正在使用的是文档副本所以某些响应头信息可能不正确。 HTTP 1.1 中新加入。
204 (No Content/无内容):在并没有新文档的情况下,确保浏览器继续显示先前的文档。
205 (Reset Content/重置内容):意思是虽然没有新文档但浏览器要重置文档显示。这个状态码用于强迫浏览器清除表单域。 HTTP 1.1 中新加入。
206 (Partial Content/局部内容):在服务器完成了一个包含Range头信息的局部请求时被发送的。 HTTP 1.1 中新加入。
300 (Multiple Choices/多重选择):表示被请求的文档可以在多个地方找到,并将在返回的文档中列出来。如果服务器有首选设置,首选项将会被列于定位响应头信息中。
301 (Moved Permanently):指所请求的文档在别的地方;文档新的URL会在定位响应头信息中给出。浏览器会自动连接到新的URL。
302 (Found/找到):与301有些类似,只是定位头信息中所给的URL应被理解为临时交换地址而不是永久的。注意:在 HTTP 1.0 中,消息是临时移动(Moved Temporarily)的而不是被找到,因此HttpServletResponse中的常量是SC_MOVED_TEMPORARILY不是我们以为的SC_FOUND。
303 (See Other/参见其他信息):这个状态码和 301、302 相似,只是如果最初的请求是 POST,那么新文档(在定位头信息中给出)药用 GET 找回。 HTTP 1.1 中新加入。
304 (Not Modified/为修正):客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告 诉客户,原来缓冲的文档还可以继续使用。
305 (Use Proxy/使用代理):表示所请求的文档要通过定位头信息中的代理服务器获得。 HTTP 1.1 中新加入。
307 (Temporary Redirect/临时重定向):和 302 (Found/找到)相同。许多浏览器会错误地响应 302 应答进行重定向,即使原来的请求是 POST ,即使它实际上只能在 POST 请求的应答是 303 时才能重定向。由于这个原因, HTTP 1.1 新增了 307 ,以便更加清除地区分几个状态代码:当出现 303 应答时,浏览器可以跟随重定向的 GET 和 POST 请求;如果是 307 应答,则浏览器只 能跟随对GET请求的重定向。 HTTP 1.1 中新加入。
400 (Bad Request/错误请求):指出客户端请求中的语法错误。
401 (Unauthorized/未授权):表示客户端在授权头信息中没有有效的身份信息时访问受到密码保护的页面。这个响应必须包含一个WWW-Authenticate的授权信息头。例如,在本书4.5部分中的“Restricting Access to Web Pages./限制访问Web页。”
403 (Forbidden/禁止):意思是除非拥有授权否则服务器拒绝提供所请求的资源。这个状态经常会由于服务器上的损坏文件或目录许可而引起。
404 (Not Found/未找到):无法找到指定位置的资源,相信有一定经验的网络使用者对此都不陌生,它是表示“没有所访问页面”的标准方式。相对于setStatus使用sendError得好处是:服务器会自动生成一个错误页来显示错误信息,也就是我们常说的 404 页面。
熟悉 WordPress 主题开发的童鞋都会知道,在 WordPress 的模板中有专门设计给 404 的页面模板,由此可见设计 404 页面对于一个网站来说有种“标配”的意味了。
405 (Method Not Allowed/方法未允许):指出请求方法(GET, POST, HEAD, PUT, DELETE, 等)对某些特定的资源不允许使用。 HTTP 1.1 中新加入。
406 (Not Acceptable/无法访问):表示请求资源的MIME类型与客户端中Accept头信息中指定的类型不一致。 HTTP 1.1 中新加入。
407 (Proxy Authentication Required/代理服务器认证要求):与401状态有些相似,表示客户必须先经过代理服务器的授权。
408 (Request Timeout/请求超时):指服务端等待客户端发送请求的时间过长。 HTTP 1.1 中新加入。
409 (Conflict/冲突):常被用于试图上传版本不正确的文件时。 HTTP 1.1 中新加入。
410 (Gone/已经不存在):请求的文档已经不存在并且没有更新的地址。 410 状态不同于 404 , 410 是在指导文档已被移走的情况下使用,而404则用于未知原因的无法访问。 HTTP 1.1 中新加入。
411 (Length Required/需要数据长度):表示服务器不能处理请求(假设为带有附件的POST请求),除非客户端发送 Content-Length 头信息指出发送给服务器的数据的大小。 HTTP 1.1 中新加入。
412 (Precondition Failed/先决条件错误):该状态指出请求头信息中的某些先决条件是错误的。 HTTP 1.1 中新加入。
413 (Request Entity Too Large/请求实体过大):告诉客户端现在所请求的文档比服务器现在想要处理的要大。如果服务器认为能够过一段时间处理,则会包含一个 Retry-After 的响应头信息。 HTTP 1.1 中新加入。
414 (Request URI Too Long/请求URI过长):用于在URI过长的情况时。这里所指的“URI”是指URL中主机、域名及端口号之后的内容。例如: http://kayosite.com:8080/aaa/bbb/ccc ,其中“URL”是指/aaa/bbb/ccc。 HTTP 1.1 中新加入。
415 (Unsupported Media Type/不支持的媒体格式):意味着请求所带的附件的格式类型服务器不知道如何处理。 HTTP 1.1 中新加入。
416 (Requested Range Not Satisfiable/请求范围无法满足):表示服务器不能满足客户在请求中指定的Range头。 HTTP 1.1 中新加入。
417 (Expectation Failed/期望失败):如果服务器得到一个带有100-continue值的Expect请求头信息,这是指客户端正在询问是否可以在后面的请求中发送附件。在这种情况下,服务器也会用该状态(417)告诉浏览器服务器不接收该附件或用100 (SC_CONTINUE)状态告诉客户端可以继续发送附件。 HTTP 1.1 中新加入。
500 (Internal Server Error/内部服务器错误):这是常见的“服务器错误”状态。表示服务器遇到了意料不到的情况,不能完成客户的请求。
501 (Not Implemented/未实现):告诉客户端服务器不支持请求中要求的功能。
502 (Bad Gateway/错误的网关):用于充当代理或网关的服务器;该状态指出接收服务器接收到远端服务器的错误响应。
503 (Service Unavailable/服务无法获得):表示服务器由于在维护或已经超载而无法响应。
504 (Gateway Timeout/网关超时):由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答。 HTTP 1.1 中新加入。
505 (HTTP Version Not Supported/不支持的 HTTP 版本):该状态码是说服务器并不支持在请求中所标明 HTTP 版本。 HTTP 1.1 中新加入。