# 计网实验一:HTTP代理服务器的设计与实现
---
## 实验要求
* 设计并实现一个基本HTTP代理服务器。要求在指定端口(例如8080)接收来自客户的HTTP请求并且根据其中的URL地址访问该地址所指向的HTTP服务器(原服务器),接收HTTP服务器的响应报文,并将响应报文转发给对应的客户进行浏览。
* 设计并实现一个支持 Cache 功能的 HTTP 代理服务器。要求能缓存原服务器响应的对象,并能够通过修改请求报文(添加if-modified-since头行),向原服务器确认缓存对象是否是最新版本。
* 扩展HTTP代理服务器,支持如下功能:
1. 网站过滤:允许/不允许访问某些网站;
2. 用户过滤:支持/不支持某些用户访问外部网站;
3. 网站引导:将用户对某个网站的访问引导至一个模拟网站(钓鱼)。
## 使用方法
在浏览器中设置代理服务器的地址和端口(如127.0.0.1和8888),运行proxy.py即可在浏览器中使用代理服务器浏览网页(不支持Https)。