HTTP状况码意义大全[网络技术]
本文“HTTP状况码意义大全[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
本部份余下的内容会具体地介绍 HTTP 1.1中的状况码.这些状况码被分为五大类:
100-199 用于指定客户端应呼应的某些行动.
200-299 用于表示恳求成功.
300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息.
400-499 用于指出客户端的错误.
500-599 用于支持服务器错误.
HttpServletResponse中的常量代表关联差别尺度消息的状况码.在servlet程序中,你会更多地用到这些常量的标识来利用状况码.比方:你普通会利用response.setStatus(response.SC_NO_CONTENT)而不是 response.setStatus(204),因为后者不易理解并且简单招致错误.但是,你该当注意到服务器答应抵消息轻细的改变,而客户端只注意状况码的数字值.所以服务器大概只返回 HTTP/1.1 200 而不是 HTTP/1.1 200 OK.
100 (Continue/持续)
假如服务器收到头信息中带有100-continue的恳求,这是指客户端询问能否可以在后续的恳求中发送附件.在这种情形下,服务器用 100(SC_CONTINUE)答应客户端持续或用417 (Expectation Failed)奉告客户端差别意承受附件.这个状况码是 HTTP 1.1中新加入的.
101 (Switching Protocols/转换协议)
101 (SC_SWITCHING_PROTOCOLS)状况码是指服务器将按照其上的头信息变成一个差别的协议.这是 HTTP 1.1中新加入的.
200 (OK/正常)
200 (SC_OK)的意思是一切正常.普通用于呼应GET和POST恳求.这个状况码对servlet是缺省的;假如没有调用setStatus办法的话,就会得到200.
201 (Created/已成立)
201 (SC_CREATED)表示服务器在恳求的呼应中成立了新文档;应在定位头信息中给出它的URL.
202 (Accepted/承受)
202 (SC_ACCEPTED)奉告客户端恳求正在被履行,但还没有处理完.
203 (Non-Authoritative Information/非官方信息)
状况码203 (SC_NON_AUTHORITATIVE_INFORMATION)是表示文档被正常的返回,但是由于正在利用的是文档副本所以某些呼应头信息大概不精确.这是 HTTP 1.1中新加入的.
204 (No Content/无内容)
在并没有新文档的情形下,204 (SC_NO_CONTENT)确保浏览器持续显示先前的文档.这各状况码关于用户周期性的重载某一页非常有效,并且你可以肯定先前的页面能否已经更新.比方,某个servlet大概作以下操作:
int pageVersion =Integer.parseInt(request.getParameter("pageVersion"));
if (pageVersion >= currentVersion) {
response.setStatus(response.SC_NO_CONTENT);
} else {
// Create regular page
}
但是,这种办法对通过革新呼应头信息或等价的HTML标志<META HTTP-EQUIV="Refresh" ...>自动重载的页面起作用,因为它会返回一个204状况码终止今后的重载.但基于JavaScript脚本的自动重载在这种情形下仍旧需求可以起作用.可以阅读本书7.2 ( HTTP 1.1 Response Headers and Their Meaning/HTTP 1.1呼应头信息以及他们的意义)部份的具体谈论.
205 (Reset Content/重置内容)
重置内容205 (SC_RESET_CONTENT)的意思是固然没有新文档但浏览器要重置文档显示.这个状况码用于逼迫浏览器排除表单域.这是 HTTP 1.1中新加入的.
206 (Partial Content/部分内容)
206 (SC_PARTIAL_CONTENT)是在服务器完成了一个包含Range头信息的部分恳求时被发送的.这是 HTTP 1.1中新加入的.
300 (Multiple Choices/多重挑选)
300 (SC_MULTIPLE_CHOICES)表示被恳求的文档可以在多个地方找到,并将在返回的文档中列出来.假如服务器有首选设置,首选项将会被列于定位呼应头信息中.
301 (Moved Permanently)
301 (SC_MOVED_PERMANENTLY)状况是指所恳求的文档在别的地方;文档新的URL会在定位呼应头信息中给出.浏览器会自动衔接到新的URL.
302 (Found/找到)
与301有些近似,只是定位头信息中所给的URL应被理解为暂时交换地址而不是永久的.注意:在 HTTP 1.0中,消息是暂时移动(Moved Temporarily)的而不是被找到,因此HttpServletResponse中的常量是SC_MOVED_TEMPORARILY不是我们认为的SC_FOUND.
注意
代表状况码302的常量是SC_MOVED_TEMPORARILY而不是SC_FOUND.
状况码302是非常有效的因为浏览器自动衔接在定为呼应头信息中给出的新URL.这非常有效,并且为此有一个专门的办法——sendRedirect.利用response.sendRedirect(url)比调用 response.setStatus(response.SC_MOVED_TEMPORARILY)和 response.setHeader("Location", url)多几个好处.首先,response.sendRedirect(url)办法明显要简单和简单.第二,servlet自动成立一页保存这一衔接以供应应那些不能自动转向的浏览器显示.最后,在servlet 2.2版本(J2EE中的版本)中,sendRedirect可以处理相对途径,自动转换为绝对途径.但是你只能在2.1版本中利用绝对途径.
假如你将用户转向到站点的另一页中,你要用 HttpServletResponse 中的 encodeURL 办法传送URL.这么做可预防不断利用基于URL重写的会话跟踪的情形.URL重写是一种在你的网站跟踪不利用 cookies 的用户的办法.这是通过在每一个URL尾部附加途径信息实现的,但是 servlet 会话跟踪API会自动的注意这些细节.会话跟踪在第九章谈论,并且养成利用 encodeURL 的习惯会使今后增添会话跟踪的功效更简单很多.
核心本领
假如你将用户转向到你的站点的其他页面,用 response.sendRedirect(response.encodeURL(url)) 的方法事前筹划好会话跟踪(session tracking)要比只是调用 response.sendRedirect(url) 好的多.
这个状况码有时可以与301交换利用.比方,假如你错误的拜候了http://host/~user(途径信息不完好),有些服务器就会答复301状况码而有些则答复302.从技术上说,假如最初的恳求是GET浏览器只是被假定自动转向.假如想理解更多细节,请看状况码307的谈论.
303 (See Other/拜见其他信息)
这个状况码和 301、302 类似,只是假如最初的恳求是 POST,那么新文档(在定位头信息中给出)药用 GET 找回.这个状况码是新加入 HTTP 1.1中的.
304 (Not Modified/为改正)
当客户端有一个缓存的文档,通过供应一个 If-Modified-Since 头信息可指出客户端只但愿文档在指定日期之后有所改正时才会重载此文档,用这种方法可以举行有条件的恳求.304 (SC_NOT_MODIFIED)是指缓冲的版本已经被更新并且客户端应革新文档.别的,服务器将返回恳求的文档及状况码 200.servlet普通情形下不会直接设置这个状况码.它们会实现getLastModified办法并按照改正日期让默许服务办法处理有条件的恳求.这个办法的例程已在2.8部份(An Example Using Servlet Initialization and Page Modification Dates/一个利用servlet初始化和页面改正日期的例子)给出.
305 (Use Proxy/利用代理)
305 (SC_USE_PROXY)表示所恳求的文档要通过定位头信息中的代理服务器得到.这个状况码是新加入 HTTP 1.1中的.
307 (Temporary Redirect/暂时重定向)
浏览器处理307状况的法则与302相同.307状况被加入到 HTTP 1.1中是由于很多浏览器在收到302呼应时即便是原始消息为POST的情形下仍旧履行了错误的转向.只有在收到303呼应时才假定浏览器会在POST恳求时重定向.增添这个新的状况码的目的很明确:在呼应为303时按照GET和POST恳求转向;而在307呼应时则按照GET恳求转向而不是POST恳求.注意:由于某些缘由在HttpServletResponse中还没有与这个状况对应的常量.该状况码是新加入HTTP 1.1中的.
注意
在 HttpServletResponse 中没有 SC_TEMPORARY_REDIRECT 常量,所以你只能显示的利用307状况码.
400 (Bad Request/错误恳求)
400 (SC_BAD_REQUEST)指出客户端恳求中的语法错误.
401 (Unauthorized/未受权)
401 (SC_UNAUTHORIZED)表示客户端在受权头信息中没有有效的身份信息时拜候遭到密码保护的页面.这个呼应必须包含一个WWW- Authenticate的受权信息头.比方,在本书4.5部份中的“Restricting Access to Web Pages./限制拜候Web页.”
403 (Forbidden/禁止)
403 (SC_FORBIDDEN)的意思是除非拥有受权不然服务器回绝供应所恳求的资源.这个状况常常会由于服务器上的破坏文件或目录答应而惹起.
404 (Not Found/未找到)
404 (SC_NOT_FOUND)状况每个网络程序员大概都碰到过,他奉告客户端所给的地址无法找到任何资源.它是表示“没有所拜候页面”的尺度方法.这个状况码是常用的呼应并且在HttpServletResponse类中有专门的办法实现它:sendError("message").相关于 setStatus利用sendError得好处是:服务器会自动生成一个错误页来显示错误信息.但是,Internet Explorer 5浏览器却默许忽视你施展的错误页面并显示其自定义的错误提醒页面,固然微软这么做违反了 HTTP 标准.要关闭此功效,在工具菜单里,挑选Internet选项,进入高级标签页,并确认“显示友好的 HTTP 错误信息”选项(在我的浏览器中是倒数第8各选项)没有被选.但是很少有效户知道此选项,因此这个特点被IE5躲藏了起来利用户无法看到你所返回给用户的信息.而其他主流浏览器及IE4都完好的显示服务器生成的错误提醒页面.可以参考图6-3及6-4中的例子.
核心告诫
默许情形下,IE5忽视服务端生成的错误提醒页面.
405 (Method Not Allowed/办法未答应)
405 (SC_METHOD_NOT_ALLOWED)指出恳求办法(GET, POST, HEAD, PUT, DELETE, 等)对某些特定的资源不答应利用.该状况码是新加入 HTTP 1.1中的.
406 (Not Acceptable/无法拜候)
406 (SC_NOT_ACCEPTABLE)表示恳求资源的MIME范例与客户端中Accept头信息中指定的范例不一致.见本书7.2部份中的表 7.1(HTTP 1.1 Response Headers and Their Meaning/HTTP 1.1呼应头信息以及他们的意义)中对MIME范例的介绍.406是新加入 HTTP 1.1中的.
407 (Proxy Authentication Required/代理服务器认证要求)
407 (SC_PROXY_AUTHENTICATION_REQUIRED)与401状况有些类似,只是这个状况用于代理服务器.该状况指出客户端必须通过代理服务器的认证.代理服务器返回一个Proxy-Authenticate呼应头信息给客户端,这会惹起客户端利用带有Proxy- Authorization恳求的头信息重新衔接.该状况码是新加入 HTTP 1.1中的.
408 (Request Timeout/恳求超时)
408 (SC_REQUEST_TIMEOUT)是指服务端等候客户端发送恳求的时间太长.该状况码是新加入 HTTP 1.1中的.
409 (Conflict/冲突)
该状况普通与PUT恳求一同利用,409 (SC_CONFLICT)状况常被用于试图上传版本不精确的文件时.该状况码是新加入 HTTP 1.1中的.
410 (Gone/已经不存在)
410 (SC_GONE)奉告客户端所恳求的文档已经不存在并且没有更新的地址.410状况差别于404,410是在指导文档已被移走的情形下利用,而404则用于未知缘由的无法拜候.该状况码是新加入 HTTP 1.1中的.
411 (Length Required/需求数据长度)
411 (SC_LENGTH_REQUIRED)表示服务器不能处理恳求(假定为带有附件的POST恳求),除非客户端发送Content-Length头信息指动身送给服务器的数据的大小.该状况是新加入 HTTP 1.1的.
412 (Precondition Failed/先决条件错误)
412 (SC_PRECONDITION_FAILED)状况指出恳求头信息中的某些先决条件是错误的.该状况是新加入 HTTP 1.1的.
413 (Request Entity Too Large/恳务实体过大)
413 (SC_REQUEST_ENTITY_TOO_LARGE)奉告客户端目前所恳求的文档比服务器目前想要处理的要大.假如服务器认为可以过一段时间处理,则会包含一个Retry-After的呼应头信息.该状况是新加入 HTTP 1.1的.
414 (Request URI Too Long/恳求URI太长)
414 (SC_REQUEST_URI_TOO_LONG)状况用于在URI太长的情形时.这里所指的“URI”是指URL中主机、域名及端口号之后的内容.比方:在URL--http://www.y2k-disaster.com:8080/we/look/silly/now/中URI是指/we /look/silly/now/.该状况是新加入 HTTP 1.1的.
415 (Unsupported Media Type/不支持的媒体魄局)
415 (SC_UNSUPPORTED_MEDIA_TYPE)意味着恳求所带的附件的格局范例服务器不知道若何处理.该状况是新加入 HTTP 1.1的.
416 (Requested Range Not Satisfiable/恳求范围无法满意)
416表示客户端包含了一个服务器无法满意的Range头信息的恳求.该状况是新加入 HTTP 1.1的.奇特的是,在servlet 2.1版本API的HttpServletResponse中并没有呼应的常量代表该状况.
注意
在servlet 2.1的标准中,类HttpServletResponse并没有SC_REQUESTED_RANGE_NOT_SATISFIABLE 这样的常量,所以你只能直接利用416.在servlet 2.2版本之后都包含了此常量.
417 (Expectation Failed/盼望失利)
假如服务器得到一个带有100-continue值的Expect恳求头信息,这是指客户法则在询问能否可以在背面的恳求中发送附件.在这种情形下,服务器也会用该状况(417)奉告浏览器服务器不接纳该附件或用100 (SC_CONTINUE)状况奉告客户端可以持续发送附件.该状况是新加入 HTTP 1.1的.
500 (Internal Server Error/内部服务器错误)
500 (SC_INTERNAL_SERVER_ERROR) 是常用的“服务器错误”状况.该状况常常由CGI程序惹起也大概(但愿不会如此!)由无法正常运行的或返回头信息格局不精确的servlet惹起.
501 (Not Implemented/未实现)
501 (SC_NOT_IMPLEMENTED)状况奉告客户端服务器不支持恳求中要求的功效.比方,客户端履行了如PUT这样的服务器并不支持的号令.
502 (Bad Gateway/错误的网关)
502 (SC_BAD_GATEWAY)被用于充现代理或网关的服务器;该状况指出接纳服务器接纳到远端服务器的错误呼应.
503 (Service Unavailable/服务无法得到)
状况码503 (SC_SERVICE_UNAVAILABLE)表示服务器由于在保护或已经超载而无法呼应.比方,假如某些线程或数据库衔接池已经没有闲暇则 servlet会返回这个头信息.服务器可供应一个Retry-After头信息奉告客户端什么时刻可以在试一次.
504 (Gateway Timeout/网关超时)
该状况也用于充现代理或网关的服务器;它指出接纳服务器没有从远端服务器得到及时的呼应.该状况是新加入 HTTP 1.1的.
505 (HTTP Version Not Supported/不支持的 HTTP 版本)
505 (SC_HTTP_VERSION_NOT_SUPPORTED)状况码是说服务器并不支持在恳求中所标明 HTTP 版本.该状况是新加入 HTTP 1.1的
以上是“HTTP状况码意义大全[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:病鸩杀不死的问题及办理办法
- ·下一篇文章:linux日记解析
- ·中查找“HTTP状况码意义大全”更多相关内容
- ·中查找“HTTP状况码意义大全”更多相关内容