C#实现W EB 代理服务器 代理服务程序是一种广泛使用的网络应用程序。代理程序的种类非常多,根据协议不同可以分成HTTP 代理服务程序、FTP 代理服务程序等,而运行代理服务程序的服务器也就相应称为 HTTP 代理服务器和 FTP 代理服务器。本文介绍的WEB 代理服务程序代理的是HTTP 协议。 一、网络代理程序的优点 代理服务所起的是一个桥的作用,他是网络信息的中转站。在网络中应用代理服务一般是苦于以下几个原因: (1) 充分利用IP 地址资源。在局域网中,一般对外的IP 地址都非常有限的,为了保证局域网内部的主机都能够访问互联网资源,通过网络代理就可以实现。 (2) 能够保证网络安全。网络代理可以充当内部网和互联网之间的防炎墙,通过过滤 IP 地址,限定某些 IP 地址对外部资源的访问。 (3) 能够有效地隐藏自己的IP 地址和主机名。由于所有对外网的请求都是通过代理服务器实现的,所以目的主机只能知道代理服务器的IP 地址。 (4) 提高网络速度。通常代理服务器都设有一个较大的硬盘缓冲区,它存储外界数据,当你再访问相同的数据时,则可以直接从缓冲区中取出信息,从而提高访问速度。 二、网络代理的类型及实现原理 网络代理服务根据工作层次,一般可分为应用层代理、传输层代理和 SOCKS 代理。应用层代理是工作在 TCP/IP 参考模型的应用层上,它支持对应用层协议(HTTP、FTP)的代理。它提供的控制最多,但是不灵活,必须要有相应的协议支持。如果协议不支持代理(如 SMTP 和 POP),那就只能在应用层以下代理,即传输层代理。传输层代理直接与 TCP 层交互,更加灵活。要求代理服务器具有部分真正服务器的功能:监听特定 TCP 或 UDP 端口,接收客户端的请求同时向客户端发出相应的响应。另一种代理需要改变客户端的IP 栈,即 SOCKS 代理。它是可用的最强大、最灵活的代理标准协议。SOCK V4 允许代理服务器内部的客户端完全地连接到外部的服务器,SOCK V5 增加了对客户端的授权和认证,因为它是一种安全性较高的代理。本节后面介绍的代理是一种应用层上面的代理,所代理的协议是HTTP,也就是经常见到的WEB 代理。 正如上面所说,网络代理就是一个连接客户端(需要代理的计算机)和服务器端(提供访问资源的公共资源的服务器)的桥。要实现这种桥的功能,网络代理就必须满足以下条件,其实也是代理服务的运行的流程: (1) 接收并解析客户端的请求。 (2) 创建到服务器的...