我已经开发了一个解决方案,依靠阿贾克斯呼叫信息的检索和更新客户页,每次10秒钟。这个工作很好,但我感到关切的是,在扩展码,给出的数量和长度的头正在通过从客户服务器然后再返回。我已删除若干多余的头在服务器上面,大多ASP。净额有关,而现在我在尝试切下头来的客户。

浏览器中使用通过我的公司是即(第6版,将提升到7旦).这是一个近似的我的前代码:

var xmlHTTP = new ActiveXObject('Microsoft.XMLHTTP');

xmlHTTP.onreadystatechange = function() {
    if ((xmlHTTP.readyState == 4) && (xmlHTTP.status == 200)) {
        myCallbackFunction(xmlHTTP);
    }
};

xmlHTTP.open('GET', 'myUrl.aspx');

try {
    xmlHTTP.setRequestHeader("User-Agent", ".");
    xmlHTTP.setRequestHeader("Accept", ".");
    xmlHTTP.setRequestHeader("Accept-Language", ".");
    xmlHTTP.setRequestHeader("Content-Type", ".");
} catch(e) {}

xmlHTTP.send();

虽然 我读过 它可以清除这些标题的,我还没有找到一种方式这样做,在IE6。设置他们null结果在一种类型不匹配异常,所以我已经结束了只是取代它们与'.'。是否有另一种方式的清除它们或替代的方法减少了提交HTTP头?

此外,似乎没有任何方式取代或缩短'引用'头。

有帮助吗?

解决方案

根据 WD规范

  

如果作为参数给出的HTTP头已经是请求头列表的一部分,则setRequestHeader()方法会附加一个值。

也就是说,您只能添加标题,而不是替换标题。

这并不完全符合当前的浏览器行为,但它可能是浏览器的发展方向,在这种情况下,从长远来看,这方面的任何努力都是浪费时间。在任何情况下,当前具有设置标题的浏览器行为都是多种多样的,通常无法依赖。

  

似乎无法替换或缩短“推荐人”标题。

鉴于有些人误导使用‘ Referer’这不会让我感到惊讶。 [原文如此]作为一种访问控制机制。

您可以尝试确保当前页面网址不会过长,但说实话,这些都是我过早优化的气味。无论你做什么,你的要求都将适合一个IP数据包,因此不会出现明显的性能差异。

Mibbit(正如你所链接的博客中提到的)尝试这些东西可能是值得的,因为Mibbit吸引了相当惊人的流量,但对于一个简单的公司范围的应用程序我不认为跨浏览器 - 和 - 代理 - 测试 - 负担:弄乱标题的最终用户 - 效益比是值得的。

其他提示

IE 6及更早版本使用从 MSXML.XMLHTTP 创建的ActiveXObject(实际上源自 IXMLHTTPRequest ),而IE 7和其他现代浏览器(如Mozilla)使用名为 XmlHttpRequest 的内部对象。这可能是您无法为MSXML实现将Request标头设置为 null 的原因,但您可以为内置对象设置。

因此,我不相信有任何方法可以集体清除所有标题。您提供的Mibbit链接仅提供将所有标题逐个设置为null的功能。对于正常情况,减少标题可能会对减少流量负载非常微不足道。

那就是说,我很想知道为什么要将请求标头设置为"。“而不是空字符串""

我会放弃这种微优化和寻找到一个推动模型来代替。通过一开始的地方:

这些都是通常配有一个服务器。在后结束。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top