XMLHttpRequest和常规HTTP请求之间的数据包级别差异是什么?

时间:2009-07-31 19:50:54

标签: http xmlhttprequest tcp

我想知道:如果我是路由器,数据包检查器,防火墙或其他数据包嗅探设备(我很高兴我不是),我能够区分传统的HTTP请求和一个XMLHttpRequest?从理论上讲,有些ISP或(比方说)手机数据提供商可能会在不中断HTTP服务的情况下限制XMLHttpRequest流量吗?

感谢。

3 个答案:

答案 0 :(得分:4)

在数据包级别没有任何东西可以区分它们,因为XMLHttpRequest是一个HTTP请求。 XML位指的是如果响应是xml Content-Type,则responseXML方法将返回DOM对象。

答案 1 :(得分:2)

据我所知,没有根本区别 - 所以从路由器等的角度来看,你不能说一般。

但我相信最流行的Javascript工具包会在其XMLHttpRequest中添加一个HTTP标头,以便识别它们。我忘了名字,但是......

编辑:这是an example(热门Google搜索“jquery xmlhttprequest标头”,没有引号),表明jQuery显然将X-Requested-With设置为“XMLHttpRequest

答案 2 :(得分:1)

在数据包,网络,会话级别:否。

在应用程序级别,也就是使用特定于HTTP的设备(如过滤代理)。

我会检查HTTP请求标头。他们可能(只是可能)有一些差异。但我确定任何差异都会特定于浏览器,很可能正确的JavaScript代码可以插入适当的标题,使其完全无法区分。

简而言之:检查HTTP标头;但不要指望它是一般的,更不用说。