浏览错误信息全部显露。
(资料图片)
上网的时候经常会出现网页打不开的情况。默认情况下,5.0以上版本在接收到任何HTTP错误时,都会显示服务器返回的HTTP错误消息的友好HTTP错误消息(见图1)。如果显示的友好HTTP错误消息是英文的,这些提示会让初学者感到困惑。相信你看完这篇文章后会对这些错误信息有一个全面的了解。
首先,友好的HTTP错误消息被逐一计数
100继续:初始请求已被接受,客户应该继续发送请求的其余部分。
101切换协议:服务器将遵照客户的请求,切换到另一个协议。
200 OK:一切正常,GET和POST请求的响应文档跟在后面。如果不使用SetStatus设置状态代码,Servlet将默认使用202状态代码。
21创建的服务器已经创建了文档,并且位置头给出了它的URL。
202已接受:请求已被接受,但处理尚未完成。
23非权威信息:文档已正常返回,但由于使用了文档的副本,一些响应标头可能不正确。
204无内容:没有新文档,浏览器应该继续显示原文档。如果用户定期刷新页面,并且Servlet可以确定用户的文档足够新,那么这个状态代码非常有用。
205重置内容:没有什么新的东西,但是浏览器应该重置它显示的内容。用于强制浏览器清除表单输入。
206部分内容:客户端发送了一个带有Range头的GET请求,服务器完成了。
300多种选择:客户要求的文档可以在多个位置找到,这些位置已经在返回的文档中列出。如果服务器想要做出偏好,则应该在位置响应报头中指出。
301永久移动:客户请求的文档在其他地方,新的URL在位置头中给出。浏览器应该会自动访问新的URL。
302发现:类似于301,但新的URL应该被视为临时替换,而不是永久替换。注意,HTTP1.0中对应的状态信息是“临时移动”,而HttpServletResponse中对应的常量是SC _ Moved _ Temporary而不是SC_FOUND。当这个状态码出现时,浏览器可以自动访问新的URL,所以它是一个非常有用的状态码。为此,Servlet提供了一个特殊的方法,即sendRedirect。使用response.sendRedirect(url)优于使用response . set status(response . sc _ moved _ temporary)和response.setHeader("Location ",url)。请注意,此状态代码有时可以用来代替301。
303 See Other:类似于301/302,只是如果原始请求是POST,那么应该由get提取Location头指定的重定向目标文档。
304未修改:客户端有一个缓冲的文档,发送一个条件请求(一般提供If-Modified-Since头,表示客户端只想在指定日期之后更新文档)。告诉服务器客户端原来缓冲的文档可以再次使用。
305使用代理:客户请求的文档应该通过Location头指示的代理服务器提取。
307临时重定向:与302相同(已找到)。很多浏览器错误地响应302响应进行重定向,即使原请求是POST,即使只有POST请求的响应是303时才能重定向。为此,HTTP 1.1增加了307,以便更清楚地区分几种状态代码:当出现303响应时,浏览器可以跟随重定向的GET和POST请求。如果是307响应,浏览器只能跟随GET请求的重定向。注意:HttpServletResponse中没有这个状态代码的常量。
400错误请求:请求中有语法错误。
401未经授权:客户试图在未经授权的情况下访问受密码保护的页面。答案会包含一个WWW-Authenticate头,浏览器会根据它显示用户名/密码对话框,在填入适当的授权头后再次发出请求。
403禁止:资源不可用。服务器理解客户的请求,但拒绝处理它。通常是由服务器上文件或目录的权限设置引起的。
404找不到:找不到指定位置的资源。这也是常见的响应,HttpServletResponse专门提供了相应的方法:sendError(message)。
不允许的方法:请求方法(GET、POST、HEAD、DELETE、PUT、TRACE等。)不适用于指定的资源。
406不可接受:已找到指定的资源,但其MIME类型与Accpet头中客户指定的类型不兼容。
407 Proxy Authentication Required:类似于401,表示客户必须先经过代理服务器的授权。
408 Request Timeout:在服务器许可的等待时间内,客户一直没有发出任何请求。客户可以在以后重复同一请求。
409 Conflict:通常和PUT请求有关。由于请求和资源的当前状态相冲突,因此请求不能成功。
410 Gone:所请求的文档已经不再可用,而且服务器不知道应该重定向到哪一个地址。它和404的不同在于,返回407表示文档永久地离开了指定的位置,而404表示由于未知的原因文档不可用。
411 Length Required:服务器不能处理请求,除非客户发送一个Content-Length头。
412 Precondition Failed:请求头中指定的一些前提条件失败。
413 Request Entity Too Large:目标文档的大小超过服务器当前愿意处理的大小。如果服务器认为自己能够稍后再处理该请求,则应该提供一个Retry-After头。
414 Request URI Too Long:URI太长。
416 Requested Range Not Satisfiable:服务器不能满足客户在请求中指定的Range头。
500 Internal Server Error:服务器遇到了意料不到的情况,不能完成客户的请求。
501 Not Implemented:服务器不支持实现请求所需要的功能。例如,客户发出了一个服务器不支持的PUT请求。
502 Bad Gateway:服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。
503 Service Unavailable:服务器由于维护或者负载过重未能应答。例如,Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个Retry-After头。
504 Gateway Timeout:由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答。
505 HTTP Version Not Supported:服务器不支持请求中所指明的HTTP版本。
二、自定义HTTP错误信息
在Internet Explorer 4中,当Wininet.dll无法解决请求时,它显示一个嵌入式HTML错误信息和一个非描述性定义,例如:“Navigation Canceled”(导航已取消)或“Unable to retrieve Webpage in Offline mode”(在脱机模式下无法检索网页)。这些错误信息是Shdocvw.dll文件的资源(res:)。资源是指程序出于显示目的所使用的HTML代码,它嵌入在动态链接库(DLL)文件中。在Internet Explorer 5或更高版本中,这些错误信息是作为Shdoclc.dll文件的资源存储的。当收到错误信息时,它被相应的HTML模板取代,此模板可能包含以下任意类型的信息:
?有关此问题的信息。
?有关如何更正或解决此问题的信息。
?指向前一页的链接。
?指向Internet Explorer支持页的链接。
?指向同一页的链接,以便您能尝试重新连接到该页。
?指向缓存中的页面副本的链接(如果创建了应用程序编程接口API)。
友好HTTP状态错误信息存储在以下注册表项中:HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\ErrorThresholds(见图2)。
Internet Explorer 5和更高版本为以下友好错误信息提供了HTML模板替换项:400.403.404.405.406.408.409.410.500.501和505。每个错误都有一个名称值对(例如“404”,128)。第一个值为错误代码。第二个值是表示字节大小的值,Internet Explorer 5或更高版本使用该值来检测何时用自己的信息替换错误信息。因此,当Internet Explorer 5版的Wininet.dll文件得到HTTP错误信息时,Wininet.dll文件将确定HTML错误中附带的HTTP内容是否为正确设计的Web页。这是在页面大小的基础上进行的。它在注册表中对每个错误的阈值进行评估。如果Web页太小,该Web页将被拒绝,并显示友好HTTP状态Web页。
要禁用友好 HTTP 状态错误信息,请按照以下步骤操作:依次选择“开始→设置→控制面板→Internet选项→高级”,单击“显示友好 HTTP 错误信息”复选框以清除,单击“确定”按钮(见图3)。
小提示:关闭友好HTTP错误信息只能禁用由服务器返回的HTTP错误信息的友好HTTP错误信息(上面列出的)。其他的友好错误信息无法禁用。例如,当Internet Explorer找不到服务器时会出现DNS错误信息。在上述情况中,没有可替换的页面,因此Internet Explorer 5或更高版本始终显示友好的“页面无法显示”错误信息。
本文到此结束,希望对大家有所帮助。
关键词: