HTTP协议即超文本传输协议,是Internet上进行信息传输时使用广泛的一种较为简单的通信协议。部分局域网对协议进行了限制,只允许用户通过HTTP协议访问外部网站。
HTTP的功能支持“直接连接”和“通过HTTP代理”两种形式的连接,而选择其中的何种形式,要视用户所在网络的具体情况。
http代理作为web代理的一种,在Internet上进行信息传输使用最为广泛。www连接请求、浏览网页、下载数据(也可采用ftp协议)都是采用的是http代理。
其存在的形式为两种,第一种是RFC 7230 - HTTP/1.1: Message Syntax and Routing(即修订后的RFC 2616,HTTP/1.1协议的第一部分)描述的普通代理。这种代理扮演的是“信息中转站”的角色,对于连接到它的客户端来说,它是服务端;而对于要连接的服务端来说,它就是客户端。代理服务器就负责在两端之间来回传送HTTP报文。
第二种是 Tunneling TCP based protocols through Web proxy servers(通过 Web 代理服务器用隧道方式传输基于TCP的协议)描述的隧道代理。它通过HTTP协议正文部分(Body)完成通讯,以HTTP的方式实现任意基于TCP的应用层协议代理。
这种代理使用HTTP的CONNECT方法建立连接,但CONNECT最开始并不是RFC 2616 - HTTP/1.1的一部分,直到2014年发布的HTTP/1.1修订版中,才增加了对CONNECT及隧道代理的描述,实际上这种代理早就被广泛实现。
简而言之,隧道代理通常是绑定在代理服务器的80、3128、8080等端口上,同时部分局域网对协议进行了限制,只允许用户通过http协议访问外部网站。