首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用透明代理进行HTTP连接

使用透明代理进行HTTP连接
EN

Stack Overflow用户
提问于 2015-03-16 18:02:25
回答 2查看 1.2K关注 0票数 1

我正在尝试编写(并理解)一个透明的代理。

我的设置如下所示

客户端浏览器-> TProxy ->上游代理->云

当客户端浏览器发出GET请求时,想法是TProxy将连接到上游代理。上游代理需要摘要身份验证。因此,从本质上讲,流程看起来就像

代码语言:javascript
复制
Client Browser ---> TProxy --------> Upstream Proxy ---------------> cloud 
GET BBC.co.uk
                    CONNECT 
                                       407 PROXY AUTH REQUIRED
                    CONNECT
               (with proxy-authorization)

                                       200 OK
                    GET BBC.co.uk

我搞不懂一旦连接授权成功后会发生什么。我现在是否应该修改原始的GET请求以包含Proxy-Authorization标头?

或者,原始的GET请求随后会在另一个http标头中以隧道方式传送,例如

代码语言:javascript
复制
HTTP Header
 Proxy Authorization
  HTTP Header (GET BBC.CO.UK)
  Data

或者我可以按原样传递原始的GET请求?

我刚刚开始使用http,如果有任何帮助我将不胜感激。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2015-03-17 02:50:06

当您从透明代理上游进行身份验证时,Proxy-Authorization标头仅应用于连接。GET请求发生在隧道内,因此上游显式代理不应该看到它们,并且肯定不期望它们上有任何代理身份验证标头。

简而言之,您不需要担心GET,但这不是因为上面给出的答案,而是因为透明代理和站点之间有一个隧道,而显式代理只看到并验证连接。

票数 2
EN

Stack Overflow用户

发布于 2015-03-16 18:12:41

HTTP中没有嵌套头这样的东西。

代理-无论是否透明-总是终止来自客户端的HTTP连接,并启动到服务器的新连接。

这意味着来自客户端的HTTP GET将发送到您的TProxy。TProxy会向上游代理创建一个新的GET请求。理想情况下,TProxy将简单地传递所有标头。这将使它(几乎)不可察觉。

响应头也是如此。

在现实中,代理服务器将,并且在许多情况下必须操作一些标头。它们通常会添加自己的报头(例如,提醒通信伙伴注意代理的存在),并且它们还可以操作现有的报头。

因此,对您的问题的简短回答是:无论您的TProxy接收到什么头字段,都要原封不动地传递它,除非您完全理解其中的含义。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29074026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档