[关键词] HTTP协议,TCP/IP协议,代理服务器,Socket
2.2 实现选择
实现代理服务器有两种方式,一是在应用层实现,相当于应用网关,另一种是在IP层或者更低层实现,通过对数据包转发,完成代理功能。[3]
2.2.1 标准选择
在两种方式之间的选择的标准是:
1.代理造成的额外延迟,即应用程序的运行速度所受的影响。
2.实现功能,即各种协议的支持情况
3.对应用软件的要求
4.以后修改的可能性,即升级的难易程度和工作量
2.2.2 两种方法的比较
两种方法各有优点,我们在选择时不得不做全面的衡量。以下称IP层实现的方式为底层实现,称应用层实现的方式为高层实现。
额外延迟包含客户发出请求和代理服务器处理请求的时间,中间传输与实现无关。
当采用底层方式时,应用程序发出的请求被代理程序截获,发往代理服务器。代理服务程序需对每一个数据报进行分析处理,以便发往正确的地址,用软件实现时无疑延迟较大。
当采用高层方式时,在客户端,应用将代理服务器作为服务器,发出请求时几乎不产生延迟。在代理服务器端时,数据将经过更多的处理才送往代理程序,但是由于只对连接请求做处理,以后的数据采用转发方式,因而速度更快;另外,借助一定的缓存方式,可以减少访问远程服务器的时间,因而平均的延迟更小。
2.2.3 软件功能
在应用层实现时,当客户请求连接某个服务器时,它首先与代理服务器建立一个传输层的连接(TCP连接),代理服务器平时在TCP公认的端口上等待客户的连接请求的到来。当一个连接请求的到来后,按预定的方式与客户交互信息。首先对请求进行解析,获取用户要求连接的真实服务器地址或名字,然后由代理服务器负责连接真实的服务器,并在客户机与真实服务器之间转发数据。
底层软件在提供透明服务上比高层更有优势。由于底层实现时只是对应用系统的链路层或IP层进行修改,对以上的层次提供与以前相同的接口,因而对应用程序的支持更广,但是在安全控制上较弱,低层方式的安全控制往往局限于对合法地址的识别,而高层实现可以提供应用级的安全控制。高层实现采用许多新的安全保护方式,如身份认证和请求的合法性验证。
2.2.4 其他
在对应用软件的要求上,低层实现的要求几乎为零,而从高层实现的原理中可以看出,高层实现需要应用程序提供支持,这是因为需要应用程序按设定的通信规程交互信息。在修改上则高层方式具有一定的优势,可以随着技术的发展而采用新的方式。
2.2.5 本次课程设计的选择
综合以上的比较,可以认为高层实现方式较好。原因是:
1.平均延迟小,对客户程序的响应速度快
2.提供更好的安全控制功能,适合作为防火墙使用
3.对客户的限制小,可以为不再同一子网内的主机提供服务,因而可以用在更广泛的场合。
目 录
1 背景与意义 1
1.1 课题背景 1
1.2 课题意义 1
1.3 开发工具的选择 2
1.4 软硬件要求 2
2 需求分析 3
2.1 可行性分析 3
2.1.1 理论上的可行性分析 3
2.1.2 技术上的可行性分析 3
2.1.3 操作可行性分析 3
2.2 实现选择 3
2.2.1 标准选择 3
2.2.2 两种方法的比较 4
2.2.3 软件功能 4
2.2.4 其他 4
2.2.5 本次课程设计的选择 4
2.3 需求分析 5
2.3.1 Web代理服务器模型 5
2.3.2 功能模块需求分析 6
2.3.3 Web代理服务器设计思路 6
3 系统设计 7
3.1 Web代理服务器相关理论基础 7
3.1.1 HTTP协议 7
3.1.2 TCP协议 10
3.1.3 C# Socket简介 15
3.2 系统设计 17
3.2.1 Web代理服务器HTTP请求处理模块设计 17
3.2.2 Web代理服务器HTTP请求转发模块设计 18
3.2.3 整体实现 19
4 编码与实现 20
4.1.1 接收HTTP请求 20
4.1.2 处理HTTP请求 20
4.2 HTTP请求转发模块 21
5 系统测试与运行 23
5.1 系统测试目的与意义 23
5.2 系统测试的原理 24
5.2.1 系统测试的原理 24
5.2.2 系统测试的原则 24
5.3 测试方法 25
5.4 测试过程 26
6 总结与展望 29
结束语 30
参考文献 31
致谢 32