在IE中Hook http/https协议导致GET请求是顺序的

2023-11-22

我正在使用通行APP方法挂钩 IE 发出的 HTTP/HTTPS 请求。

它在大多数情况下运行良好,但我注意到一个问题。一次只有一个下载线程处于活动状态,通常 IE 使用两个下载线程。我可以看到创建了两个 IInternetProtocol 对象,但 IE 一次只使用一个。

IE7出现这种情况,其他版本还没试过。

问题似乎是 IE 在以下情况下会回退到一次下载一个项目:IInternetSession::RegisterNameSpace为其任何默认处理程序调用。下面的代码导致HTTP即使我正在注册,下载也会按顺序进行HTTPS处理程序。注册“file://”会导致同样的问题。

CComPtr<IInternetSession> spSession;
CoInternetGetSession(0, &spSession, 0);

MetaFactory::CreateInstance(CLSID_HttpSProtocol, &m_spCFHTTPS);
spSession->RegisterNameSpace(m_spCFHTTPS, CLSID_NULL, L"https", 0, 0, 0)

页面上的前几项总是会发生这种情况,但似乎在发布文档完成后,可以再次发生并发下载。例如,页面加载完成后执行的 JavaScript 代码可以同时加载图像。


可以通过修补 COM VTable 来解决此问题InternetProtocolRootEx::StartEx()在已注册的 HTTP/HTTPS 协议上。由于这不会直接替换协议处理程序,因此 IE 不会回退到单线程模型。

该技术描述如下:

http://web.archive.org/web/20130313164317/http://www.blackfishsoftware.com/blog/don/passthroughapp_bho_toolbar_intercepting_requests_responses

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在IE中Hook http/https协议导致GET请求是顺序的 的相关文章

  • 从浏览器中删除cookie?

    有什么方法可以指示网络浏览器完全delete一个人的cookie是用PHP设置的吗 我不想expiry或者等待浏览器closed 对于删除 我的意思是实际上不再将其列在 cookie 列表中 尝试这样删除所有 cookie foreach
  • IE8 中的 CSS 属性选择器错误?

    指定为CSS 2 1 http www w3 org TR CSS2 selector html attribute selectors input type submit or input type submit 必须匹配 type 属性
  • 使用标签强制关闭 IE 兼容模式

    我正在为一个在所有 Intranet 站点上强制使用兼容模式的客户工作 我想知道是否可以在 HTML 中放入一个标签来强制关闭兼容模式 有 边缘 模式 http msdn microsoft com en en library cc8175
  • 如何通过 HTTP POST 发送充满对象的 NSArray?

    我在 iPhone 端有一个产品 购物清单 由具有名称 product id 等的产品对象组成 我希望将此列表发送到服务器 在那里我将服务器上的列表与 iphone 中的列表进行比较 以合并所做的更改并将合并的列表发送回 iphone 如何
  • SignalR - IE 中的 Forever Frame 在闲置几分钟后停止工作

    我在 IE9 中使用 SignalR 不幸的是 它必须降级为使用永久帧连接 我花了一些时间使用 IE 中的开发人员工具来研究这个问题 我可以看到回调加载到动态插入的 IFrame 中 并且它们调用 SignalR 插件中的接收函数 然而 在
  • 在 Heroku 上获取客户端的真实 IP 地址

    在任何 Heroku 堆栈上 我想获取客户端的 IP 我的第一次尝试可能是 request headers REMOTE ADDR 当然 这是行不通的 因为所有请求都是通过代理传递的 所以替代方法是使用 request headers X
  • 样式选项以粗体显示

    我遇到了选项的样式问题 我需要一些选项以粗体样式显示 但 Internet Explorer 不想呈现它 我使用 CSS 设置它font weight bold 这不起作用 在此页面中可以看到一个示例 Example http www 45
  • 在 Internet Explorer 中离线(客户端)创建 csv 文件

    有没有办法使用纯 JavaScript 离线 本地 创建 CSV 文件并将该文件下载到本地文件系统 该方法应该适用于 IE9 或更低版本 我尝试过downloadify 但跨域问题使我无法在本地使用它 我还尝试创建 Base64 编码字符串
  • Internet Explorer 9 中图像地图周围的蓝色边框

    我遇到了以下问题 我在网站上使用图像地图 在 Internet Explorer 9 IE8 很好 中 当我单击链接 区域标签 时 它周围会出现蓝色边框 如何摆脱它 我试过了 map map area border none importa
  • 在golang中获取TTFB(第一个字节的时间)值

    我正在尝试获取 TTFB 值和 Connect 值 c exec Command curl w Connect time connect TTFB time starttransfer Total time time total o dev
  • 是否可以修改 $_SESSION 变量?

    恶意用户是否可以将 SESSION 在 php 中 变量设置为他想要的任何值 很大程度上取决于您的代码 有一点非常明显 SESSION username REQUEST username
  • Angular2 中 Http 的 Promise 与 Observable? [复制]

    这个问题在这里已经有答案了 本质上 正如标题所说 是否有任何理由使用可观察的承诺 https stackoverflow com questions 37364973 angular 2 promise vs observable为了进行
  • WinApi:获取 COM 表单的控件名称

    我想用 Net 框架替换我当前的 UI 自动化工具 QTP 我需要测试 VB6 COM 应用程序 框架的基础之一是使用表单名称 到目前为止 我未能找到使用 Win API 获取这些数据的方法 该解决方案只有一个约束 即该解决方案必须依赖 N
  • 由于浏览器设置的标头,Safari 拒绝重定向的 CORS 请求

    Summary Safari 拒绝一些涉及重定向的 CORS 请求 声称某些标头是不允许的 但该标头从来不是由脚本请求的 而是由浏览器添加的 所以我认为这应该不重要 Safari 的行为是一个错误吗 规格有问题吗 或者 事情变成这样是有原因
  • 为什么我的 COM 对象不显示组件服务中的方法?

    我正在尝试创建一个 COM 对象并将其注册到 COM 下 一切似乎都很顺利 但是当我查看组件服务并深入了解时 控制台根目录 组件服务 电脑 我的电脑 COM 应用程序 测试通讯 组件 TestCom Com MyCom 接口 MyCom 方
  • Django 响应总是用 text/html 分块无法设置内容长度

    在我的Django应用程序的views py中 我在尝试设置以下HTTP标头字段后返回一个HttpResponse对象 Create a Response Object with the content to return response
  • 删除 IE9 边缘周围的 2px 灰色边框

    我正在尝试对这个网站进行编码 尝试关键字 并且我正在尝试找出如何删除这个阴影2px灰色边框延伸到 IE9 窗口的内部 至少顶部 左侧和底部 我的边距设置为零 因此所有页面元素都到达页面的最边缘 但使用 IE9 它们会停在这个灰色边框处 我没
  • 使用什么 API 在现有 MFC 应用程序中添加 HTTP 客户端支持?

    我最近接到一项任务 要添加与以下内容交互的能力网络地图服务 http en wikipedia org wiki Web Map Service到现有的 MFC 应用程序 我需要客户端 HTTP API 根据我的研究 领先的候选人似乎是CA
  • Access-Control-Allow-Origin值跨站缓存

    我正在尝试编写一个 nginx 配置来处理 http 和 https 上的两个站点 只要客户端从不访问这两个站点 它似乎就可以工作 但如果它们这样做 就会出现缓存 跨站点问题 Allow cross origin location eot
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字

随机推荐