- 在指定端口(例如 8080)接收来自客户的 HTTP 请求并且根据其中的 URL 地址访问该地址所指向的 HTTP 服务器(原服务器),接收 HTTP 服务器的响应报文并将响应报文转发给对应的客户进行浏览
- 支持 Cache 功能:求能缓存原服务器响应的对潒,并能够通过修改请求报文(添加 If-Modified-Since 头行)向原服务器确认缓存对象是否是最新版本
- 网站过滤:允许/不允许重点内容访问某些网站
- 用户過滤:支持/不支持某些用户访问外部网站
- 网站引导:将用户对某个网站的访问引导至一个模拟网站(钓鱼)
完整的代码(VS2015):
1、加载套接字库,创建套接字
2、初始化套接字:设置 IP 地址和端口等属性
4、拓展功能:网站过滤用户过滤,网站引导检查是否有本地缓存(改造HTTP头添加 If-Modified-Since 字段)
5、代理连接到服务器,并将客户端发送的 HTTP 数据报文转发给目标服务器
6、接收目标服务器的响应报文 解析报文头信息:状态码为304时不需要更新缓存,并将本地缓存转发给客户端;否则直接将响应报文转发给客户端并进行缓存
为了使浏览器访问网址时通过代理服务器,必须进行相关设置以 Chrome 浏览器设置为例,打开 Chrome 浏览器中的设置点击高级,选择打开代理设置:
选择局域網设置按如图所示进行配置
然后程序就可以监听10240端口啦~
代码是根据指导书改编的,菜鸟一枚还望大神们多多指教~