我想知道:如果我是路由器,数据包检查器,防火墙或其他数据包嗅探设备(我很高兴我不是),我能够区分传统的HTTP请求和一个XMLHttpRequest?从理论上讲,有些ISP或(比方说)手机数据提供商可能会在不中断HTTP服务的情况下限制XMLHttpRequest流量吗?
感谢。
答案 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标头;但不要指望它是一般的,更不用说。