自 2012 年 6 月 12 日 11:20 TU 以来,我在 varnish/apache 日志中看到了非常奇怪的错误。
有时,当用户请求一个页面时,几秒钟后我会看到一个类似的请求,但 url 中最后一个 / 之后的所有字符串已被“undefined”替换。
示例: http ://example.com/foo/bar触发http://example.com/foo/undefined请求。
当然这些“未定义”页面不存在,而是返回了我的 404 页面(这是具有标准布局的自定义页面,而不是经典的 apache 404)
- 任何页面都会发生这种情况(从主页到最深处)
- 使用各种浏览器(主要是 Chrome 19,还有 firefox 3.5 到 12、IE 8/9...),但只有 1% 的流量。
- 这些请求发送的标头是经典标头(并且没有 ajax 标头)。
- 对于给定的 ip,这似乎是随机发生的:有时在访问的第一页上,有时在访问期间的随机页面上,有时在访问期间的几个页面上......
当然,这看起来像是一个 javascript 问题(我使用的是 google 托管的 jquery 1.7.2),但几天以来我的 js/html 或服务器配置完全没有任何变化,而且我之前从未见过这种错误. 当然,在 html 中没有这样的链接。
我还注意到一些有趣的事实:
- 未定义的请求永远不会被找到作为其他页面的引用者,而是将“真实”页面用作相同 IP 的以下请求的引用者(用户可以使用 404 页面上的经典菜单)
- 我在 Google Analytics 中没有看到这些页面的任何痕迹,所以我假设没有执行任何 javascript(跟踪器存在于所有页面上,包括 404)
- 没有人就此联系过我们,即使我在网站的社交网络中提到了这个问题
- 大多数用户在那之后继续访问
所有这些事实让我认为问题是在浏览器中悄悄发生的,可能是由昨天更新的浏览器中集成的错误插件、防病毒、浏览器栏或糟糕的制造商软件触发的(但我没有发现任何已发布的插件昨天为 chrome、firefox 和 IE)。
这里有没有人注意到同样的问题,或者有更完整的解释?