HTTP Proxy及相关应用开发

上传人:cl****1 文档编号:576495118 上传时间:2024-08-20 格式:PPT 页数:26 大小:854KB
返回 下载 相关 举报
HTTP Proxy及相关应用开发_第1页
第1页 / 共26页
HTTP Proxy及相关应用开发_第2页
第2页 / 共26页
HTTP Proxy及相关应用开发_第3页
第3页 / 共26页
HTTP Proxy及相关应用开发_第4页
第4页 / 共26页
HTTP Proxy及相关应用开发_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《HTTP Proxy及相关应用开发》由会员分享,可在线阅读,更多相关《HTTP Proxy及相关应用开发(26页珍藏版)》请在金锄头文库上搜索。

1、HTTP ProxyHTTP Proxy及相关应用开及相关应用开发发主要内容n nHttp协议及Http代理基本介绍n nHttp代理服务器工作流程及程序结构n n终端使用Http代理连接外网的方式n n以EDC为例,介绍Http代理相关的应用开发n nHttp代理相关的服务器端的开发HttpRequestMessage格式n n请求行,例如请求行,例如GET/images/logo.gifHTTP/1.1GET/images/logo.gifHTTP/1.1,表示从,表示从/images/images目录下请求目录下请求logo.giflogo.gif这个文件。这个文件。 (请求)头,例如(

2、请求)头,例如Accept-Language:enAccept-Language:enn n空行空行 n n可选的消息体可选的消息体 请求行和标题必须以请求行和标题必须以作为结尾。空行内必须只作为结尾。空行内必须只有有而无其他空格。在而无其他空格。在HTTP/1.1HTTP/1.1协议中,所有协议中,所有的请求头,除的请求头,除HostHost外,都是可选的。外,都是可选的。Http/1.1请求方法n nOPTIONSn nHEADn nGETn nPOSTn nPUTn nDELETEn nTRACEn nCONNECTHttp状态码n n所有所有 HTTPHTTP响应的第一行都是响应的第一

3、行都是状态行状态行状态行状态行, ,依次是当前依次是当前 HTTPHTTP版本号,版本号,3 3位数字组成的位数字组成的状态代码状态代码,以及描述状态的短语,以及描述状态的短语,彼此由空格分隔。彼此由空格分隔。n n状态代码的第一个数字代表当前响应的类型:状态代码的第一个数字代表当前响应的类型:1xx1xx消息消息请求已被服务器接收,继续处理请求已被服务器接收,继续处理 2xx2xx成功成功请求已成功被服务器接收、理解、并接受请求已成功被服务器接收、理解、并接受 3xx3xx重定向重定向需要后续操作才能完成这一请求需要后续操作才能完成这一请求 4xx4xx请求错误请求错误请求含有词法错误或者无

4、法被执行请求含有词法错误或者无法被执行 5xx5xx服务器错误服务器错误服务器在处理某个正确请求时发生错误服务器在处理某个正确请求时发生错误 HTTPHTTP客户端与服务器之间会话的例子客户端与服务器之间会话的例子n n客户端请求:客户端请求:客户端请求:客户端请求:GET/HTTP/1.1GET/HTTP/1.1HostHost:n n服务器应答:服务器应答:服务器应答:服务器应答:HTTP/1.1200OKHTTP/1.1200OKContent-Length:3059Content-Length:3059Server:GWS/2.0DServer:GWS/2.0Date:Sat,11Ja

5、n200302:44:04GMTate:Sat,11Jan200302:44:04GMTContent-Type:text/htmlContent-Type:text/htmlCache-control:privateCache-control:privateSet-Cookie:Set-Cookie:PREF=ID=73d4aef52e57bae9:TM=1042253044:LM=1042253044:S=SMCc_HRPCPREF=ID=73d4aef52e57bae9:TM=1042253044:LM=1042253044:S=SMCc_HRPCQiqyX9j;expires=Sun,

6、17-Jan-203819:14:07GMT;path=/;QiqyX9j;expires=Sun,17-Jan-203819:14:07GMT;path=/;domain=domain=Connection:keep-aliveConnection:keep-alive(紧跟着一个空行,并且由(紧跟着一个空行,并且由HTMLHTML格式的文本组成了格式的文本组成了GoogleGoogle的主页)的主页)什么是代理服务器?n n普通的因特网访问是一个典型的客户机普通的因特网访问是一个典型的客户机/ /服务器结构:用服务器结构:用户本地计算机上的客户端程序如浏览器发生请求,远端户本地计算机上的客

7、户端程序如浏览器发生请求,远端WWWWWW服务器程序响应请求并提供相应的数据。而代理处服务器程序响应请求并提供相应的数据。而代理处于客户机和服务器之间,对于服务器来说,于客户机和服务器之间,对于服务器来说,ProxyProxy是客户是客户机,提出请求;对于客户机来说,机,提出请求;对于客户机来说,ProxyProxy是服务器,它接是服务器,它接受请求并提供数据。受请求并提供数据。代理服务器的作用n n安全屏障、内容过滤、访问控制n n提高网络性能n n多机共享一个IP地址n n用户管理n n通过代理服务器可以访问一些不能直接访问的网站HTTPCONNECT代理n n不是所有的HTTP代理都只能

8、代理HTTP的n nHTTPCONNECT代理服务器是一种能够允许用户建立TCP连接到任何端口的代理服务器,这意味着这种代理不仅可用于HTTP,还包括FTP,RM流服务等Http代理服务器的工作流程Http代理服务器程序框架结构示例终端使用Http代理连接外网的方式n n常见的支持Http代理的终端:IE浏览器、QQ、MSN等n n终端使用Http代理连接外网的方式1.1.终端本身不支持Http代理,也不支持socks5,采用sockscap+socks2http方式2.2.终端本身支持socks5,可以采用socks2http方式3.3.终端本身支持http代理Http代理相关的应用开发_以

9、EDC为例Http代理相关的应用开发_EDC终端n n需要做相关开发的模块包括SIP模块、RTP模块、MSRP模块Http代理相关的应用开发_EDCSIP模块n n添加TCP收发模块n n添加Http消息封包及解封包n n添加与Http2Socks服务器的信息交互n nSip消息、Sdp消息相关字段的修改(Contact、Via等)Http代理相关的应用开发_EDCRtp模块n n添加TCP收发模块n nHttp消息封包及解封包n nHttp消息包体内容包括Rtp消息的最终目的接收者的IP地址、端口及Rtp消息Http代理相关的应用开发_EDCMsrp模块n nMSRP协议基本介绍1.1.相关

10、的RFC:RFC4975TheMessageSessionRelayProtocolRFC4976RelayExtensionsfortheMessageSessionRelayProtocolHttp代理相关的应用开发_EDCMsrp模块n n2使用MSRP进行文件传送的典型拓扑结构Http代理相关的应用开发_EDCMsrp模块n n3使用MSRP进行文件传送的基本流程Http代理相关的应用开发_EDCMsrp模块n n4使用MSRP进行文件传送的SDP消息示例v=0v=0o=alice28908445262890844526INIPo=alice28908445262890844526IN

11、IPs=s=c=INIPc=INIPt=00t=00m=message7654TCP/MSRP*m=message7654TCP/MSRP*i=Thisismylatestpicturei=Thisismylatestpicturea=sendonlya=sendonlya=accept-types:*a=accept-types:*a=path:msrp:/:7654/jshA7we;tcpa=path:msrp:/:7654/jshA7we;tcpa=file-selector:name:My cool picture.jpg”a=file-selector:name:My cool pi

12、cture.jpg”type:image/jpeg size:32349type:image/jpeg size:32349hash:SHA:72245FE8653DDAF371362F86D471913EE4A2CE2Ehash:SHA:72245FE8653DDAF371362F86D471913EE4A2CE2Ea=disposition:inlinea=disposition:inlinea=file-date:creation:Mon, 15 May 2006 15:01:31 +03:00a=file-date:creation:Mon, 15 May 2006 15:01:31

13、+03:00a=icon:cid:a=icon:cid:a=byte-range:1-32349a=byte-range:1-32349Http代理相关的应用开发_EDCMsrp模块n n5MSRP消息示例MSRPa786hjs2SENDMSRPa786hjs2SENDTo-Path:msrp:/:12763/kjhd37s2s20w2a;tcpTo-Path:msrp:/:12763/kjhd37s2s20w2a;tcpFrom-Path:msrp:/:7654/jshA7weztas;tcpFrom-Path:msrp:/:7654/jshA7weztas;tcpMessage-ID:87

14、652491Message-ID:87652491Byte-Range:1-25/25Byte-Range:1-25/25Content-Type:text/plainContent-Type:text/plainHeyBob,areyouthere?HeyBob,areyouthere?-a786hjs2$-a786hjs2$MSRPa786hjs2200OKMSRPa786hjs2200OKTo-Path:msrp:/:7654/jshA7weztas;tcpTo-Path:msrp:/:7654/jshA7weztas;tcpFrom-Path:msrp:/:12763/kjhd37s2

15、s20w2a;tcpFrom-Path:msrp:/:12763/kjhd37s2s20w2a;tcp-a786hjs2$-a786hjs2$Http代理相关的应用开发_EDCMsrp模块n n5当需要把一个大消息分成几个小的消息传送时的当需要把一个大消息分成几个小的消息传送时的MSRPMSRP消息消息Message-ID:456Message-ID:456Byte-Range:1-4/8Byte-Range:1-4/8Content-Type:text/plainContent-Type:text/plainabcdabcd-dkei38sd+“+”-dkei38sd+“+”号表示后面还有消

16、息内容号表示后面还有消息内容 “$”“$”表示消息完整表示消息完整MSRPdkei38iaSENDMSRPdkei38iaSENDMessage-ID:456Message-ID:456Byte-Range:5-8/8Byte-Range:5-8/8Content-Type:text/plainContent-Type:text/plainEFGHEFGH-dkei38ia$-dkei38ia$一般一次传送消息大小最大为一般一次传送消息大小最大为2K.2K.Http代理相关的应用开发_EDCMsrp模块n n流程修改(进行文件传送前,先向http2socks服务器请求msrp中继服务)n nh

17、ttp封包及解封包n n文件数据的重新组包Http2Socks服务器设计说明n n功能要求功能要求1.1.监听请求端口,处理分配端口的请求,将分配的端口监听请求端口,处理分配端口的请求,将分配的端口(msrp(msrp中继服务中继服务不用返回端口不用返回端口) )返回给终端返回给终端; ;2.2.建立一个建立一个UDPUDP套接字,与分配的端口绑定,监听该端口;将从该套接字,与分配的端口绑定,监听该端口;将从该UDPUDP套接字接收到的消息包打包成套接字接收到的消息包打包成httphttp格式,再通过与终端保持的格式,再通过与终端保持的TCPTCP连连接转发出去接转发出去 ; ;3.3.处理收

18、到的终端发过来的消息包,取出消息包内容与目的服务器地址,处理收到的终端发过来的消息包,取出消息包内容与目的服务器地址,将消息包通过之前建立的将消息包通过之前建立的UDPUDP套接字转发到目的服务器地址(套接字转发到目的服务器地址(PSPS服务服务器将响应发送到请求消息器将响应发送到请求消息IPIP包源地址,所以不能通过其他套接字转发包源地址,所以不能通过其他套接字转发请求消息)请求消息)n n性能要求性能要求1.1.大容量消息并发实时处理(包括大容量消息并发实时处理(包括UDPUDP和和TCPTCP)2.2.7*247*24小时服务小时服务3.3.可靠消息处理可靠消息处理Http2Socks服务器程序结构

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号