什么是Http代理
Web 代理是一种存在于网络中间的实体,提供各式各样的功能。现代网络系统中,Web 代理无处不在。今天,这里就来谈一下Http代理。
HTTP协议即超文本传输协议,是Internet上进行信息传输时使用最为广泛的一种非常简单 的通信协议。部分局域网对协议进行了限制,只允许用户通过HTTP协议访问外部网站。
HTTP的功能支持“直接连接”和“通过HTTP代理”两种形式的连接,选择其中的何种形式?要视用户所在的局域网(或其它上网环境)的具体情况。
以QQ为例:简单地说,如果用户所在局域网并未设置任何代理服务器,则选择“直接连接”就可以实现QQ连通;而如果用户所在局域网设置了代理服务器,则必须选择“通过HTTP代理”,并填写所在局域网的代理服务器地址、端口等详细资料,才有可能实现QQ连通。
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 及隧道代理的描述,详见 RFC 7231 - HTTP/1.1: Semantics and Content。实际上这种代理早就被广泛实现。
简而言之,它通常是绑定在代理服务器的80、3128、8080等端口上,同时部分局域网对协议进行了限制,只允许用户通过http协议访问外部网站。