- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HTTP代理服务器的设计与实现.doc
HTTP代理服务器的设计与实现
1、实验目的
熟悉并掌握Socket网络编程的过程与技术;
深入理解HTTP协议,掌握HTTP代理服务器的基本工作原理;
掌握HTTP代理服务器设计与编程实现的基本技能。
Internet的实验主机;
Windows xp或Windows 7/8;
开发语言:C/C++(或Java)等
为了使浏览器访问网址时通过代理服务器,必须进行相关设置,以IE浏览器设置为例:打开浏览器(工具(浏览器选项(连接(局域网设置(代理服务器具体过程如图
图1-1 浏览器的代理服务器设置
(2)多线程使用
使用函数_beginthreadex创建子线程_endthreadex结束线程详情见CSDN
6、参考内容
代理服务器,俗称“翻墙软件”,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。如图1-2所示,为普通Web应用通信方式与采用代理服务器的通信方式的对比。
图1-2 Web应用通信方式对比
代理服务器在指定端口8080)监听浏览器的访问请求(需要在客户端浏览器进行相应的设置)接收到浏览器对远程网站的浏览求时,代理服务器开始在代理服务器的缓存URL对应的网页对象,找到对象后,代理服务器程序If-Modified-Since: 对象文件的最新被修改时间,并向Web服务器如果服务器没有该的缓存,则会,客户端,同时将缓存代理服务器程序会根据缓存的时间、大小和提取记录
本实验需实现一个简单的HTTP代理服务器,可以分为两个步骤:(首先请设置浏览器开启本地代理,注意设置代理端口与代理服务器监听端口保持一致)。
a) 单用户代理服务器
单用户的简单代理服务器可以设计为一个非并发的循环服务器。首先,代理服务器创建HTTP代理服务的TCP主套接字,通过该主套接字监听等待客户端的连接请求。当客户端连接之后,读取客户端的HTTP请求报文,通过请求行中的URL,解析客户期望访问的原服务器IP地址;创建访问原(目标)服务器的TCP套接字,将HTTP请求报文转发给目标服务器,接收目标服务器的响应报文,当收到响应报文之后,将响应报文转发给客户端,最后关闭套接字,等待下一次连接。
b) 多用户代理服务器
多用户的简单代理服务器可以实现为一个多线程并发服务器。首先,代理服务器创建HTTP代理服务的TCP主套接字,通过该主套接字监听等待客户端的连接请求。当客户端连接之后,创建一个子线程,由子线程执行上述一对一的代理过程,服务结束之后子线程终止。与此同时,主线程继续接受下一个客户的代理服务。
参考代码
#include stdafx.h
#include stdio.h
#include Windows.h
#include process.h
#include string.h
#pragma comment(lib,Ws2_32.lib)
#define MAXSIZE 65507 //发送数据报文的最大长度
#define HTTP_PORT 80 //http服务器端口
//Http重要头部数据
struct HttpHeader{
char method[4]; // POST或者GET,注意有些为CONNECT,本实验暂不考虑
char url[1024]; // 请求的url
char host[1024]; // 目标主机
char cookie[1024 * 10]; //cookie
HttpHeader(){
ZeroMemory(this,sizeof(HttpHeader));
}
};
BOOL InitSocket();
void ParseHttpHead(char *buffer,HttpHeader * httpHeader);
BOOL ConnectToServer(SOCKET *serverSocket,char *host);
unsigned int __stdcall ProxyThread(LPVOID lpParameter);
//代理相关参数
SOCKET ProxyServer;
sockaddr_in ProxyServerAddr;
const int ProxyPort = 10240;
//由于新的连接都使用新线程进行处理,对线程的频繁的创建和销毁特别浪费资源
//可以使用线程池技术提高服务器效率
//const int ProxyThreadMaxNum = 20;
//HANDLE ProxyThreadHandle[ProxyThreadMaxNum] = {0};
//DWORD ProxyThreadDW[ProxyThreadMaxNum] = {0};
struct ProxyParam{
SOCK
您可能关注的文档
- 公司临时场所环境因素、危险因素识别、评价、管理方案制定及运行控制管理办法.doc
- 【备战2015中考英语】-常考易错题汇编-复合句(含解析)资料要点.doc
- 2014采购师真题汇总要点.docx
- 毛石条形基础施工方法.docx
- 《李翰祥的黄昏岁月》── 李翰祥和他的「北京松园」..doc
- 门诊及医技科室工作制度.docx
- 《国家基本药物临床应用指南(2012版)》试题答案集合版..doc
- 管道荷载计算方法1.docx
- 朴智—深圳报业人力资源方案—晶报编采与职能部门考核管理办法.doc
- 【精华合集】质量监督站工作总结5.docx
- 2025年乡村生态采摘园跨境电商渠道拓展与运营策略研究.docx
- 2025年乡村生态采摘园跨境电商物流体系优化建议.docx
- 2024-2025学年小学科学二年级上册人教鄂教版(2024)教学设计合集.docx
- 2025年珠宝首饰电商定制服务供应链优化报告.docx
- 2025年K12在线教育内容生态构建与运营分析.docx
- 元宇宙社交平台生态构建案例:社交平台与虚拟现实游戏娱乐.docx
- 面向2025年的跨境物流企业网络布局与物流行业风险管理分析报告.docx
- 2025年乡村生态采摘园跨境电商物流体系构建策略.docx
- 2025年氢能产业链上下游企业竞争力评估报告:技术突破与市场前景.docx
- 司新星煤矿矿山生态保护修复方案.pdf
最近下载
- 知识产权法智慧树知到期末考试答案章节答案2024年同济大学.docx VIP
- 临床医学教学模式创新与课堂互动设计.pptx
- 生猪屠宰兽医卫生检验人员理论考试题库资料及答案.pdf VIP
- 天津市静海区2024-2025学年高一下学期6月学生学业能力调研试题 地理试卷含答案.docx VIP
- 有限空间安全作业技术交底.docx VIP
- 消防设施操作员(中级监控方向)理论知识考试题库(含答案解析).pdf VIP
- 小学校园心理危机干预培训.pptx VIP
- 《内部控制与风险管理(第3版)》思考题和案例分析答案6-10章.docx VIP
- 军职在线-雷达原理-2023年春期末考试答案.docx VIP
- 佛山第六次人口普数据分析.doc VIP
文档评论(0)