一、计算机网络之HTTP代理服务器
源码下载地址
实验的内容:
1.实现基本的HTTP代理服务器,可以在指定端口接收客户端http的请求并且根据其中个URL地址访问该地址所指向的HTTP服务器,接收服务器的响应报文,并将响应报文转发给对应的客户进行浏览。
2.设计并实现一个支持cache功能的HTTP代理服务器,要求能缓存原服务器响应的对象,并能够通过修改请求报文(添加 if-modified-since头行),向原服务器确认缓存对象是否是最新版本
3.扩展 HTTP 代理服务器,支持如下功能:
a、网站过滤:允许/不允许访问某些网站
b、用户过滤:支持/不支持某些用户访问外部网站
c、网站引导:将用户对某个网站的访问引导至一个模拟网站(钓鱼)
代理服务器,俗称 “翻墙软件” ,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。如图所示,为普通 Web 应用通信方式与采用代理服务器的通信方式的对比。
实现的是多用户代理服务器,实现线程的并行执行。 首先,代理服务器创建 HTTP 代理服务的 TCP 主套接字,通过该主套接字监听等待客户端的连接请求。当客户端连接之后,创建一个子线程,由子线程执行上述一对一的代理过程,服务结束之后子线程终止。与此同时,主线程继续接受下一个客户的代理服务。
实验环境配置
打开IE(windows)-> 工具 -> Internet选项 -> 连接 -> 局域网设置 -> 代理服务器
如下设置地址和端口号(端口号和程序中保持一致即可(最好使用较大的,低端口一般被占用))
基本的HTTP代理服务器,实现简单,不用处理直接转发接收到目的服务器的报文即可。因此不作介绍,主要讲解实现的扩展功能。
1网站过滤的实现