IE使用什么规则来确定是否显示实体主体?

时间:2013-05-24 18:04:50

标签: internet-explorer http

至少在IE 9上,通常情况下,浏览器决定不显示Web浏览器所服务的实体主体,而是显示自己的自定义页面。它似乎是为了一些错误,如403,404,500等。

但是,有时,显示服务器发送的实体主体。

它用于确定是否显示响应的条件是什么?

我做了什么:我构建了一个次要的网络服务器,它通过查询字符串获取一个关于返回什么代码的参数,并返回(状态代码为code) :

<!DOCTYPE html>
<html>
<head></head>
<body>
<h1>Response {code}</h1>
Hi. I'm an <em>HTML document</em>. I should be the response of a code {code}.
</body></html>

我是通过/my-page?code=400/my-page?code=500等来调用的。有时候我会看到这个页面,有时候我没有。 Chrome会验证正在发送的状态代码。 (并显示页面。)

1 个答案:

答案 0 :(得分:3)

这显然已经被设计破坏了。条件:

  • 错误是[400,403,404,405,406,408,409,410,500,501,505]之一
  • 实体主体的大小(以字节为单位)小于HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\ErrorThresholds
  • 指定的阈值

另请注意默认值:

  

响应代码[403,405,410]的默认阈值为256字节,响应代码[400,404,406,408,409,500,501,505]的默认阈值为512字节。如果其中一个状态代码缺少注册表项,则其阈值默认为512字节。

http://blogs.msdn.com/b/ieinternals/archive/2010/08/19/http-error-pages-in-internet-explorer.aspx