HTTP代理服务器的设计与实现
1、 实验目的
熟悉并掌握Socket网络编程的过程与技术
深入理解HTTP协议掌握HTTP代理服务器的基本工作原理
掌握HTTP代理服务器设计与编程实现的基本技能。
2、 实验环境
接入Internet的实验主机
Window s xp或Window s 7/8
开发语言 C/C++ 或Java等。
3、 实验内容
(1)设计并实现一个基本HTTP代理服务器。要求在指定端口例如8080接收来自客户的HTTP请求并且根据其中的URL地址访问该地址所指向的HTTP服务器原服务器接收HTTP服务器的响应报文并将响应报文转发给对应的客户进行浏览。
(2)设计并实现一个支持Cache功能的HTTP代理服务器。要求能缓存原服务器响应的对象并能够通过修改请求报文添加if-modified-sinc e头行 向原服务器确认缓存对象是否是最新版本。 选作内容加分项目可以当堂完成或课下完成
(3)扩展HTTP代理服务器支持如下功能 选作内容加分项目可以当堂完成或课下完成a) 网站过滤允许/不允许访问某些网站b)用户过滤支持/不支持某些用户访问外部网站c)网站引导将用户对某个网站的访问引导至一个模拟网站钓鱼。
4、 实验方式
每位同学上机实验实验指导教师现场指导。
5、 实验过程
1浏览器使用代理
为了使浏览器访问网址时通过代理服务器必须进行相关设置以IE浏览器设置为例打开浏览器工具浏览器选项连接局域网设置代理服务器具体过程如图1-1所示。
图1-1浏览器的代理服务器设置
2多线程使用
使用函数_b eginthreadex创建子线程使用函数_endthreadex结束线程详情见C S DN。
6、参考内容
代理服务器俗称“翻墙软件”允许一个网络终端一般为客户端通过这个服务与另一个网络终端一般为服务器进行非直接的连接。如图1-2所示为普通Web应用通信方式与采用代理服务器的通信方式的对比。
图1-2Web应用通信方式对比
代理服务器在指定端口 例如8080监听浏览器的访问请求需要在客户端浏览器进行相应的设置接收到浏览器对远程网站的浏览请求时代理服务器开始在代理服务器的缓存中检索URL对应的对象网页、图像等对象找到对象文件后提取该对象文件的最新被修改时间代理服务器程序在客户的请求报文首部插入<If-Modified-Since:对象文件的最新被修改时间>并向原Web服务器转发修改后的请求报文。如果代理服务器没有该对象的缓存则会直接向原服务器转发请求报文并将原服务器返回的响应直接转发给客户端同时将对象缓存到代理服务器中。代理服务器程序会根据缓存的时间、大小和提取记录等对缓存进行清理。
本实验需实现一个简单的HT TP代理服务器可以分为两个步骤 首先请设置浏览器开启本地代理注意设置代理端口与代理服务器监听端口保持一致。a)单用户代理服务器
单用户的简单代理服务器可以设计为一个非并发的循环服务器。首先代理服务器创建HT TP代理服务的TC P主套接字通过该主套接字监听等待客户端的连接请求。当客户端连接之后读取客户端的HT TP请求报文通过请求行中的URL解析客户期望访问的原服务器IP地址创建访问原目标服务器的TC P套接字将H T TP请求报文转发给目标服务器接收目标服务器的响应报文当收到响应报文之后将响应报文转发给客户端最后关闭套接字等待下一次连接。b)多用户代理服务器
多用户的简单代理服务器可以实现为一个多线程并发服务器。首先代理服务器创建HT TP代理服务的T CP主套接字通过该主套接字监听等待客户端的连接请求。当客户端连接之后创建一个子线程 由子线程执行上述一对一的代理过程服务结束之后子线程终止。与此同时主线程继续接受下一个客户的代理服务。
7实验报告
在实验报告中需要总结说明
1 Socket编程的客户端和服务器端主要步骤2HTTP代理服务器的基本原理
3HTTP代理服务器的程序流程图
4实现HTTP代理服务器的关键技术及解决方案5HTTP代理服务器实验验证过程以及实验结果6HTTP代理服务器源代码带有详细注释。
我们在选择虚拟主机和云服务器的时候,是不是经常有看到有的线路是BGP线路,比如前几天有看到服务商有国际BGP线路和国内BGP线路。这个BGP线路和其他服务线路有什么不同呢?所谓的BGP线路机房,就是在不同的运营商之间通过技术手段时间各个网络的兼容速度最佳,但是IP地址还是一个。正常情况下,我们看到的某个服务商提供的IP地址,在电信和联通移动速度是不同的,有的电信速度不错,有的是移动速度好。但是如果...
2021年6月底,raksmart开发出来的新产品“cloud-云服务器”正式上线对外售卖,当前只有美国硅谷机房(或许以后会有其他数据中心加入)可供选择。或许你会问raksmart云服务器怎么样啊、raksm云服务器好不好、网络速度快不好之类的废话(不实测的话),本着主机测评趟雷、大家受益的原则,先开一个给大家测评一下!官方网站:https://www.raksmart.com云服务器的说明:底层...
搬瓦工今天正式对外开卖荷兰阿姆斯特丹机房走联通AS9929高端线路的VPS,官方标注为“NL - China Unicom Amsterdam(ENUL_9)”,三网都走联通高端网络,即使是在欧洲,国内访问也就是飞快。搬瓦工的依旧是10Gbps带宽,可以在美国cn2 gia、日本软银与荷兰AS9929之间免费切换。官方网站:https://bwh81.net优惠码:BWH3HYATVBJW,节约6...