Chrome扩展程序后台XMLHttpRequest代理服务器

时间:2015-08-02 14:42:08

标签: google-chrome-extension xmlhttprequest

我在Chrome扩展程序中执行后台任务,执行一些轮询/检查。在错误的情况下,我想使用不同的CDN服务器重试检查以验证它是否是站点范围的问题或仅受影响的CDN节点。挑战在于如何控制要发送到哪个CDN节点。

e.g。假设我正在检查www.company.com,通常由server21.cdn.co提供服务

现在,如果失败,我想检查server5.cdn.co和server10.cdn2.co是否有相同的内容,看看是否存在相关性。

这些检查是使用XMLHttpRequest完成的,但我找不到指定每个请求使用哪个主机/代理的方法。

我不想“劫持”整个浏览器的代理服务器设置,因为这会导致所有其他页面/标签失败。

2 个答案:

答案 0 :(得分:1)

如果在DNS级别执行负载均衡(最有可能),则根本不会影响您实际联系的服务器。

答案 1 :(得分:1)

为了澄清,不能这样做,因为XMLHTTPRequest禁止覆盖请求中的Host标头。有关原因的解释,请参阅https://security.stackexchange.com/questions/46702/how-can-i-control-the-content-of-the-http-host-header-in-requests-issued-from-my/

从概念上/技术上来说,如果不是因为这个安全问题,它很容易做到。例如curl:     curl --verbose --header'主持人:www.example.com' ' http://10.1.1.36/the_url_to_test'

但正如问题中所述,我们已经卡在Chrome扩展程序中,因此curl不是一个选项!