【问题标题】:How do HTTP proxies deal with external JS files called from HTML markup?HTTP 代理如何处理从 HTML 标记调用的外部 JS 文件?
【发布时间】:2013-07-12 16:15:48
【问题描述】:

使用 HTTP 代理服务器,我知道请求会发送到代理,代理会向目标站点发出新请求,然后复制响应并创建 HTML 标记以相应地显示给用户。但是,如果响应的标记中包含外部 javascript 文件(来自目标站点)怎么办:

<script src="http://externalsite.com/whatever.js"></script>

我期待它们被重写为代理向用户显示的标记:

<script src="http://proxy.com/currentusercache/whatever.js"></script>

所以现在我完全糊涂了!

【问题讨论】:

  • 代理只返回给定资源路径的数据当请求资源时给代理。仅此而已 - 客户端永远不需要知道差异,并且代理不会重写原始资源路径。 (一些匿名代理可以,但这是一个不同的话题!Squid 主要是缓存代理,而不是匿名代理。)
  • @user2246674 - 如果它是匿名代理会发生什么?
  • 视情况而定。一个匿名代理通常会花费大量时间来重写它所服务的任何 HTML,以便所有资源路径都将使用所述代理或其他匿名服务。也就是说,即使是到http://google.com?q=blahblah 的链接也可能被重写为http://proxy/ASddfad789FD/whatever。 (但是,代理仍然不能影响原始 HTML - 只会影响它返回的 HTML。)
  • 好的,谢谢你的帮助

标签: javascript html browser proxy squid


【解决方案1】:

据我所知,代理服务器不会重写 url。 但是url没有关系,如果是相对的,那么被代理的页面会再次连接到代理。

但是有一些方法可以更改响应正文。 http://wiki.nginx.org/HttpSubModule 如果你使用的是 nginx。

附言。可以查看similar mailinglist post

【讨论】:

    猜你喜欢
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-07
    • 2019-01-23
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多