Visual C#实现 HTTP 代理服务程序
网络代理程序的种类非常多,根据代理服务程序代理的协议不同,分成 HTTP 代理服务程
序、FTP 代理服务程序等,运行代理服务程序的服务器也就称为 HTTP 代理服务器和 FTP
代理服务器。在本节中介绍的 Web 代理服务程序代理的就是 HTTP 协议。
一.网络代理的类型及实现原理:
网络代理服务根据工作层次,一般可分为应用层代理、传输层代理和 SOCKS 代理。
应用层代理是工作在 TCP/IP 参考模型的应用层之上,它支持对应用层 协议(如
HTTP,FTP)的代理。它提供的控制最多,但是不灵活,必须要有相应的协议支持。如果
协议不支持代理(如 SMTP 和 POP),那就只能在应用 层以下代理,也即传输层代理。传
输层代理直接与 TCP 层交互,更加灵活。要求代理服务器具有部分真正服务器的功能:监
听特定 TCP 或 UDP 端口,接收客户 端的请求同时向客户端发出相应的响应。另一种代理
需要改变客户端的 IP 栈,即 SOCKS 代理。它是可用的最强大、最灵活的代理标准协议。
SOCK V4 允许代理服务器内部的客户端完全地连接到外部的服务器,SOCK V5 增加了对
客户端的授权和认证,因此它是一种安全性较高的代理。本节后面介绍的代理是一种应用
层上面的代理,所代理的协议是 HTTP,也就是经常见到的 Web 代理。
网络代理就是一个连接客户端(设定需要代理的计算机)和服务器端(需要访问资源
的服务器)的桥。要实现这种桥,网络代理就必须满足下列条件,其实也是代理服务的运
行的流程:
(1). 能够接收并解析客户端的请求。
(2). 创建到服务器的新连接,并根据转发客户端的请求信息。
(3). 接收服务器反馈的信息。
(4). 能够发出或解释服务器的响应并将该响应传回给客户端。
图 01 是网络代理服务的一个典型模型图:
- 1
- 2
前往页