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 代理
它是可用的最强大、最灵活的