您的位置:首页 >资讯列表 > 正文
发布时间:2020-04-22 16:57
HTTP通信代理过程和模型分析

  HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。当客户端请求一个web页面时,它首先与服务器建立连接,连接成功后,它要将所请求的页面,所用的协议及版本,语言及版本,所能接受的,编码类型以及连接状况等一些本地信息参数等交给服务器,web服务器收到请求后,发回所交送页面的的信息的响应头信息,然后再发送页面内容信息,后,双方断开连接。


u=2061592850,4033727360&fm=26&gp=0.jpg


  以http://localhost/为例子,做一个简单说明。在Iexplore浏览器中输入http://localhost/,则Iexplore浏览器向本地的WebServer服务器(win2000下面IIS,win98下面PWS)的80号端口发送一个请求信息。信息是“Get Http 1.0……”等这些信息,WebServer进行处理以后,返回对应的结果信息,就是Iexplore浏览器中显示的网页等信息。


  请求信息Get…


  在没有使用通信代理的情况下,网络应用程序的结构包括两部分:一部分是服务器端的应用程序,主要用于接受客户端的连接请求,接收并处理客户端的信息,向客户端发送计算结果和应答信息等。另一部分是客户端的应用程序,主要用于申请连接到服务器,向服务器发送计算请求,处理服务器发回的计算结果和其他信息等。一般来讲,服务器应用程序可以同时接受多个客户端的连接请求和其他处理要求,而客户端也可以同时连接到几个服务器上。服务器端,即自动创建一个监听线程,随时监听是否有客户端的连接请求。服务器为每一个客户端请求建立一个socket,以便并行处理客户端的数据通讯请求。服务器为了接收客户端的数据,在为客户端建立的socket[35,36]上建立消息响应函数OnReceive,用来接收数据。客户端为了接收服务器端的数据,则在连接的socket上,建立一个消息响应函数OnReceive,用来接收数据。特别应注意的是:客户端必须知道服务器端为客户端提供的端口地址。


  5.1.2利用通信代理的转发机制


  代理服务器不仅可以实现提高浏览速度和效率的功能,它还可以实现网络的安全过滤[37,38]、流量控制(减少internet使用费用)、用户管理等功能,因此它既是一种网络防火墙技术,同时也可以解决许多单位连接internet引起地址不足的问题。


  通信代理是网络信息的中转站。一般情况下,使用网络浏览器直接去链接其它internet站点并取得网络信息时,须送出请求信号来得到应答,然后对方再把信息传送回来。通信代理是介于浏览器和web服务器之间的服务器,有了它之后,浏览器不是直接到web服务器去取回网页而是向代理服务器发出请求,请求信号会先送到代理服务器,由通信代理来取回浏览器所需要的信息并传送给你的浏览器。而且,大部分通信代理都具有缓冲的功能,它不断将新取得数据包存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是新的,那么它就不重新从web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。


  http代理的实现由于http代理是典型的b/s模式[39],所以至少需要两个socket


  (套接字)来实现客户与web服务器的连接。具体过程如下:


  1)代理服务器监听客户端的连接请求;


  2)客户端连接到代理服务器,发送请求信息;


  3)代理服务器解析客户端的发送过来的数据,确定服务类型(http),服务器地址和端口号,确定是否是合法的ip和url;


  4)代理服务器连接远程web服务器;


  5)循环启动线程serve,该线程负责客户端,代理服务器和远程web服务器之间数据的交互,交互完毕结束线程;


  6)关闭serve field socked(服务器端套接字),断开代理与web服务器的连接;


  7)关闭client field socked(客户端套接字),断开客户端与代理服务器的连接;


上一篇 怎么选择好用的爬虫代理ip 下一篇 HTTP代理服务器的种类