免责声明:内容由作者分享,本文编写由Jin 代为执笔。
要理解HTTP代理,首先需要理解什么是“代理”?
代理其实就一个代替你办某一件事的过程。
举个例子:你是老板,想喝水了,然后叫秘书帮你倒了一杯水过来。这个秘书代替你完成的过程就可以称为代理了。
HTTP代理主要分为2种代理:普通代理和隧道代理。
你可能会问:普通代理和隧道代理有什么区别呢?
还是拿上面的例子来说吧。
假如你现在要和某一个客户约个会议,于是跟秘书说:“打电话给XX客户,下午17:00约个会议”。 于是秘书拿起电话打过去,跟XX客户说:“下午17:00约个会议”。 然后XX客户回答说:“OK”。 这时秘书挂了电话,然后跟你说:“OK”。
这就是普通代理,整个过程秘书是完成参与在里面的。
假如你现在要和某一个客户约个会议,于是跟秘书说:“打电话给XX客户”。 于是秘书拿起电话打过去,接通之后,把电话给你。 你跟XX客户说:“下午17:00约个会议”。 然后XX客户回答说:“OK”。 然后XX客户挂了电话后,秘书也从你手上拿走了电话挂掉。
这就是隧道代理,整个过程秘书只负责电话接通和关闭。
普通代理是最常见的一种代理模式。
这里的代理服务器就好比你的秘书。
HTTP客户端通过 CONNECT
方法请求隧道代理创建一条到达任意目的服务器和端口的 TCP
连接,代理服务器并对客户端和服务器之间的后继数据进行盲转发。
现在的网络中存在这无数的代理服务器。
正向代理中,proxy和client同属于一个LAN(局域网),对server透明。
比如:你常常使用的“梯子”就是正向代理。
反向代理中,proxy和server同属于一个LAN,对client透明。
比如:现在很多的服务器都只会暴露接入层机器,并不会暴露真正的服务器。这里的接入层机器就可以被认为是代理服务器。
条件是这样的:
你需要做的就是让A与C能进行正常的数据发送与请求数据。
解决方案: