![HTTP 请求损坏](https://linux22.com/image/493355/HTTP%20%E8%AF%B7%E6%B1%82%E6%8D%9F%E5%9D%8F.png)
在一个流量非常大的网站上,有一小部分请求是这样的:
http://cheezburger.com/ScriptResource.axd?d=zaVpgH63ePt90pn</a> <br /> <br /> <p> <a id=
在页面引用页面上,有一行如下内容:
<script src="/ScriptResource.axd?d=zaVpgH63ePt90p8fuEYkPAKFZuziMYsiIUbmxDb-gQ23Cx78LNJNFXTqKciA4ND_frR-_r9UKsdtLPk6M08xyk6cXFSLUrbBGDlvPIf-F9w1&t=ffffffffd5e08dd5" type="text/javascript"></script>
后面还有几行:
<a id="login_LoginState_LoginButton" class="button1" UseSubmitBehavior="false" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("login$LoginState$LoginButton", "", true, "ctl00$Login1", "", false, true))">Log In</a>
<br />
<br />
<p>
<a id="login_LoginState_PasswordRecoveryLink" href="/forgot.aspx">Forgot Password?</a>
因此,似乎页面的一部分已被删除。这种情况在 IE 中比在 Firefox 中更常见,但这可能是因为我们的 IE 流量比 FireFox 多。我们已打开 HTTP 压缩,但我不知道这是否是问题所在。
所以我的问题是发生了什么事以及如何解决?
答案1
好吧,SO 没有像 icanhascheezburger.com 那样收到那么多请求,这是肯定的 :) 但我可以告诉你,我们确实收到过来自明显在某些基本方面存在问题.. 的浏览器的罕见请求。
这通常与通过 JavaScript 构建的网站部分(链接、代码等)有关。
显然,浏览器不知怎么搞砸了 JavaScript 代码,导致返回给我们的请求完全不合理。示例。我们的投票如下所示:
/posts/12345/vote/2
但偶尔我们会得到
/posts/true/vote/2
“真的”?什么鬼?我们以前会关注这些,但现在我们干脆忽略它们。
答案2
我们在应用程序中看到了同样的事情,这是一个已知的 IE8 问题,已经存在一段时间了。 这是 Microsoft Connect 错误报告。
基本上,在某种程度上,IE8 只是忽略数据包丢失,并通过将 2 个数据包流附加在一起并忽略丢失的数据包流来进行渲染。结果就是您的服务器上出现了一些混乱的 URL。由于数据包在大多数情况下大小大致相同,因此您经常会看到以相同大小开头但以一些随机脚本结尾的 URL。
答案3
忽略请求,这很可能是由于代理损坏或 DNS 故障造成的
答案4
我注意到 IE 不止一次开始下载页面,然后在完成之前就开始渲染,导致链接无法正确形成。通常,在这种情况下,JS 脚本会在页面末尾加载。在一些较大的页面上,IE 会下载大约一半的页面,尝试渲染,然后礼貌地停止并断开与服务器的连接,这是什么鬼?
无论如何,在某些情况下,只需将 JS 包含移到顶部,然后将启动移到更靠近底部的位置即可解决一些问题。
我们已经抛弃了 js 链接建设的疯狂 :)