一个实用的HTTP代理程序设计与实现

上传人:ba****u6 文档编号:203512057 上传时间:2023-04-24 格式:DOCX 页数:18 大小:175.17KB
收藏 版权申诉 举报 下载
一个实用的HTTP代理程序设计与实现_第1页
第1页 / 共18页
一个实用的HTTP代理程序设计与实现_第2页
第2页 / 共18页
一个实用的HTTP代理程序设计与实现_第3页
第3页 / 共18页
资源描述:

《一个实用的HTTP代理程序设计与实现》由会员分享,可在线阅读,更多相关《一个实用的HTTP代理程序设计与实现(18页珍藏版)》请在装配图网上搜索。

1、一个实用的 HTTP 代理程序设计与实现摘要:本文介绍了 HTTP 代理服务器基本工作原理、代理服务器的总体设计框架 和其中采用的用以提高性能的关健技术、进程池技术和缓存机制以及核心模块的 具体实现流程,最后提出了一种实用的HTTP代理服务器的设计方案。关键词:代理服务器; 进程池; 缓存机制Abstract : The design and implementation of HTTP proxy server with high performance are described. First, the basic mechanism of HTTP proxy server is int

2、roduced and then, the whole framework of proxy server and the key techniques process pool and cache technique are presented which are adopted to improve performance. Finally, the implementations of core modules are given.Key words: proxy server; process pool; cache mechanism目录第一章 前言2第二章 HTTP 原理与代理模型

3、的设计32.1 HTTP 协议32.2 HTTP 代理模型32.3 模型的实现42.4 优化的代理技术72.4.1 身份认证72.4.2 Cache 技术8第三章 总体设计103.1 框架结构103.2 关键技术103.2.1 进程池管理103.2.2 缓存管理12第四章 核心模块的实现144.1 主守护进程的实现144.2 代理服务模块的实现144.3 缓存管理进程的实现16结语 17参考文献: 17第一章 前言随着 Internet 与 Intranet 的飞速发展,作为连接 Internet 与 Intranet 的的桥梁, 代理服务器在实际应用中发挥着极其重要的作用。代理服务器(Pro

4、xy)是网络信息的中转站。一般情况下,使用网络浏览器直 接去链接其它Internet站点并取得网络信息时,须送出请求信写来得到应答,然 后对方再把信息传送回来。代理服务器是介于浏览器和 Web 服务器之间的一台 服务器,有了它之后,浏览器不是直接到 Web 服务器去取回网页而是向代理服 务器发出请求,请求信写会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。而且,大部分代 理服务器都具有缓冲的功能,就好像一个大的Cache,它不断将新取得数据包存 到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上己经存在而 且是最新的,那么它就不重新从 Web 服务器取数据

5、,而直接将存储器上的数据 传送给用户的浏览器,这样就能显著提高浏览速度和效率。代理服务器不仅可以实现提高浏览速度和效率的功能,它还可以实现网络的 安全过滤、流量控制(减少 Internet 使用费用)、用户管理等功能,因此它既是 一种网络防火墙技术,同时也可以解决许多单位连接Internet引起IP地址不足的 问题。将代理服务器的这些功能应用在多媒体教室中,可以方便地实现教师机对 学生机的管理,下面就介绍一下该代理模型的设计与实现。第二章 HTTP 原理与代理模型的设计2.1 HTTP 协议HTTP 是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适 用于分布式超媒体信息系统。当客户

6、端请求一个 Web 页面时,它首先与服务器 建立连接,连接成功后,它要将所请求的页面,所用的协议及版木,语言及版木, 所能接受的 MIME 类型,编码类型以及连接状况等一些本地信息参数等交给服 务器,Web服务器收到请求后,发回所交送页面的的信息的响应头信息,然后再 发送页面内容信息,最后,双方断开连接。HTTP 的早期 版木 为 HTTP/0.9 , 1982 年, Tim Berners-Lee 提出了 HTTP/1.0,1997年形成HTTP/ 1.1,也就是现在普遍使用的协议。HTTP/ 1.1在持续连接操作机制中实现流水方式,即客户端需要对同一服务器发出多个请求 时,其请求的多数的W

7、eb页面都是由多部分组成(比如多张图片,声音),可用 流水线方式加快速度。流水机制就是指在客户机请求到 Web 页面时,搜索其中 的图像链接和声音链接,然后再请求这些页面,即连续发出多个请求并等到这些 请求发送完毕,再等待响应。这样就大大节省了单独请求对响应的等待时间,使 人们得到更快速的浏览。而且HTTP-NG (Next Generation of HTTP)的建议己经 提出。2.2 HTTP 代理模型根据HTTP协议规定,当客户端使用代理模式时,发送的请求命令格式如下: method http: /hostname/path/ /filename 例妆口:GET http: /www.x

8、idian.edu.cm/。当 客户端同网络代理服务系统建立连接后,代理服务器将收到请求命令,这时代理 服务器应该截取主机名部分进行域名解析,并同该主机建立连接,将去掉主机名 部分的请求命令转发给它,等待它做出响应,然后将得到的响应转发给客户端, 最后断开连接。其模型如图 2-1 所示。代理亠EntemEt-客户*Cashe*j图 2-1 带有 Cache 数据库的 HTTP 协议代理模型注:客户连接代理服务器,并发出客户请求: 在本地 Cache 中无此资源时,连接到 Internet; 从 Internet 上获得所请求的资源: 将客户所请求的资源发送给客户:*代理服务系统检索Cache数

9、据库:窃如果客户请求的资源在数据库中,这直接将请求的资源发给代理服务器:2.3 模型的实现由于HTTP代理是典型的C/S模式,所以至少需要两个Socket (套接字)来 实现客户与Web服务器的连接。结合在多媒体教室巾的应用,具体过程如下:(1) 代理服务器监听客户端的连接请求;(2) 客户端连接到代理服务器,发送请求信息;(3) 代理服务器解析客户端的发送过来的数据,确定服务 类型(HTTP),服务器地址和端口号,确定是否是合法的IP和URL,确定是否在木地Cache库巾,是,则重定向,不是,则执行(4);(4) 代理服务器连接远程Web服务器;(5) 循环启动线程Server,该线程负责客

10、户端,代理服务器 和远程Web服务器之间数据的交互,交互完毕结束线程;(6) 关闭server field Socket(服务器端套接字),断开代理与 web 服务器的连接 ;(7)关闭client_ field Socket (客户端套接字),断开客户端与代理服务器的连接;其实现系统流程图如 2 所示。FrzKy噩斤Client请汪代理服势器和容户端交互疾据信总,开缓率 响应头和页面数据代理脈詹器与替H備斷升注馥 一 一 1图 2-2 HTTP 代理服务器系统实现流程图在系统设计中,为客户端和服务器各建一个 Socket 套接字 client_ field 和 server_ field以来

11、实现客户和Web服务器的连接。由于在该代理系统操作中是要 求用户主机和远端主机双向通信的,这样就要求对两个套接字描述符既能够读也 能够写。如果采用的是阻塞 I/0 的话,很有可能长时间阻塞在一个描述符上。因 此设计时在处理这个问题的时候调用了 select ()函数,这个函数允许执行I/O 多路转接。其具体含义就是select ()函数可以构造一个表,在这个表中包含了 所有要用到的文件描述符。然后可以调用一个函数,这个函数可以检测这些文件 描述符的状态,当某个指定的)文件描述符准各好进行 I/O 操作时,此函数就返 回,告知进程哪个文件描述符己经可以执行I/O操作了。这样就避免了长时间的 阻塞

12、。在调用select ()函数实现多路I/O转接时,首先要声明一个新的文件描述 符集:Fd - set rdfdset;然后调用 FD- ZERO ()清空此文件描述符集的所有位,以免下面检测描 述符位的时候返回错误结果:FD_ ZERO ( &rdfdset);然后调用 FD_ SET( )在文件描述符集中设置所关心的位。在该系统中,关心的就是分别与用户主机和远端主机连接的两个套接字描述符,所以执行这样的语 句:FD_ SET (client_ field , &rdfdset) ;FD_SET (server_ f ield ,&rdfdset) ;然后调用select。返回描述符状态,此

13、时描述符状态被存储进描述符集,也 就是 fd _ set 数据结构中。在该系统中,只关心两个套接字描述符是否可读,因此执行这样的select () 函数:Select (FD_ SETSIZE, &rdfdset, NULL, NULL ,NULL)那么在 select ()返回后调用函数 FD_ ISSET ()如果对应文件描述符的状态为 “己准备好”(即描述符位为“1),则 FD IS-SET 0返回1 ,否则返回0。下面一段代码就实现从套接字client_ field用户主机)到套接字server_ field (远端主机)的无阻塞传输。Char buf 1024:int iolcn -

14、0:if (FD_ ISSET( client_ field. &rdfdset)if ( Iolen =read (client_ field, buff ,sizeof (buf)=0)break : /长度为 0 意味着连接中断write 9Server_ field. buf. iolen ): /缓冲区的内容发送至服务器端而这一段代码则实现了反方向的无阻塞传输:if (FD_ ISSET( Server _field, &rdfdset)if (iolen =read( Server_ field, buf, sizeof buf ) ) )=0)break;write( clien

15、t field, buf, iolen );/缓冲区内容发送至客户端这样就通过代理服务器实现了用户主机与远端主机之间的通信。将该代理系统应用到多媒体教室中,学生机就相当于一个个客户机,教师机 就相当于代理服务器。当学生机发送请求时,教师机首先看其 IP 地址是否有权 限访问Internet学生机的IP权限可事先由教师设定),然后再看其请求的URL是 否合法(不合法的URL事先存储在数据库中),如果是,再看其请求的URL是否 在 Cache 库中,若在并且没有到达更新期限,则从硬盘中读出并显示在客户端; 否则,连接到远程Web服务器并缓存相应的数据或更新Cache库。这样,不仅 提高了学生上网的

16、速度,节约了带宽,而且,也提高了系统的安全性,方便了教 师对学生的管理。2.4 优化的代理技术为了提高WWW的访问的速度,也同时加强代理服务器的用户管理,在系统设 计过程中,采用了 Proxy Cache 缓冲技术和用户身份认证技术,提高系统访问及管 理的有效性和高效性4.2.4.1 身份认证为了简化客户端的应用软件,本系统在不增加客户端任何软件或对其系统进 行改变的情况下,对客户的身份进行认证即采用主机名/IP地址识别法来确认用 户的有效性。利用 TCP/IP 协议进行通讯时 ,无论是何种应用协议 ,在传输层都转化成 SOCKET 进行联接,两个 SOCKET 之间利用五元组来实现联接和通讯

17、。SOCKET 五元组标识如下:协议 源IP地址 源端口号目的地址目的端口号在代理服务程序进入监听状态后,在Listen()等待客户的联接请求,旦有请 求,则触发FD-ACCEPT事件,在OnAccept事件处理函数中即可验证客户信息.实 现主要过程如下:SOCKET socket;sockaddr-in m-ClientSocket;socket.SockId=accept(ListenSocket, (struct socketaddr- in)&socket.addr, &sizeof(m-ClientSocket) if(socket.SockId=INAVLID-SOCKET)ret

18、urn false;CString IpAddr = inet-ntoa(socket.addr.sin-addr);将网络IP转化为点分格式串if(IpAddr 不满足条件)判断IP地址是否满足条件return false;2.4.2 Cache 技术Cache技术对于提高WWW的访问速度,减少请求的响应时间和服务器的负 载,有着很重要的意义。随着 WWW 的普及程度越来越高,访问 Internet 的用户也越来越多,由此 而导致Internet的阻塞,这对HTTP请求的阻塞尤为明显。近来的研究数据表明, 在所有导致Internet阻塞的原因中,由于HTTP请求引起的占了 75-80%。HT

19、TP 代理缓冲的目的就在于减少网络传输开销和提高传输速度。另外,也可以节省上 网费用。代理服务器的Cache通过保存代理的URL摘要(key)来减少请求次数。当 有新的请求时,首先检查本身的缓存摘要,如果其摘要里有文档信息,则向代理 缓存器请求己取得文档,如果没有,则直接向 Web 服务器发送请求。摘要必需 周期的刷新。当客户与代理服务器连接后,所提交的请求主要有4种:GET, HEAD,PUT, POST。其中,GET和HEAD请求是最多的也是最频繁的,大约占90%以上。PUT 和 POST 请求要向远程服务器提交数据,而且 POST 请求还要启动 CGI 应用程 序,因此利用缓冲区的意义不

20、大。在该系统中,只对 GET 请求作缓冲处理,其 他的请求则直接由代理服务器发送给远程服务器。用于代理服务器的Cache 一般比较庞大。在一个过大的Cache文件表中,查 找某一个文件,将消耗系统资源,降低系统性能。所以,如何合适的存储和检索 摘要己达到快速的定位文件,以提高系统的性能,是Cache技术的核心。对此, 国内外有好多相关的算法来实现该项技术。在该系统中,采用文本缓冲的存储方 式。代理服务器利用缓冲区头数据结构来管理存在硬盘上的 Web 页面。缓冲区的数据结构如下:Struct buffer- Webint index;/ 请求的索引值int num;/访问的次数char* url

21、 ; /请求的 url 值char szPath MAX_ PATH;/存储在硬盘上的路径char szExpire 20:;/请求文档过期日期串SYSTEMTIME szTime; /存入硬盘上的时间struct Buffer Web* pNext; /指向下一个节点*lpbuffer_ Web, buffer _ Web;结构buffer_Web标识了一个Web页面在本地缓冲区的物理地址,文档的失 效口期串以及存入缓冲区的时间等。为了提高系统的效率,采用 HASH 散列算 法散列客户请求的URL,不同的索引值对应不同的HASH链表,代理服务器维 护着由这个结构组成的多个HASH链表,并不断

22、更新这些链表。szExpire只是在 HTTP进行请求Web远程服务器后,作为响应传回来的。当表中的szExpire超出 规定范围时,代理服务器删除此buffer_ Web节点。在代理服务器接收到一个 GET 请求后,解析出服务器名与路径和文件,通 过服务器名求出索引,然后在该索引值所对应的链表中查询是否有此URL如果 有,则通过buffer_ Web结构中的元素szPath去定位文件。如果请求得网页己过 期或不存在,则需要重新向远程的 Web 服务器请求后交给客户端并更新本地缓 冲区。代理服务器的缓冲区是不断更新的。当客户端所请求的在代理缓冲区的页面 己经过期时,代理服务器必须向 Web 服

23、务器请求相关的新的信息。而且,在将 新的信息送到客户端的同时,刷新缓冲区,并刷新相应的参数(szTime, szExpire), 确保保存的页面是最新的。由LRU算法可知,对于一些更新周期很慢的页面以 SZTime和num作为衡量标准),说明该页面访问次数较少,因此需要进行清理。 缓冲区不是无限大的,因此,在代理服务器启动、退出、定时或空闲时的时间内, 代理服务器要对缓冲区进行清理,去掉一些失效的页面。第三章 总体设计3.1 框架结构整个代理服务系统主要由 3 个模块组成:主守护进程模块、代理服务模块和 缓存管理模块。 主守护进程模块:负责代理服务器的初始化,监听提供HTTP代理服务的 端口,

24、启动一定数量的代理服务子进程并对进程池进行管理; 代理服务模块:负责处理客户端的请求,提供代理服务; 缓存管理模块:负责提供对缓存的快速查询、添加和删除等维护操作。如 图 3-1 所示。图 3-1 框架结构 在这个设计框架中,采用了进程池技术和缓存机制两个关键技术,下面将详 细阐述。3.2 关键技术3.2.1 进程池管理普通的代理服务器是这样工作的:主进程在某个绑定的端口上监听,一旦有 客户请求到达,就通过 fork ()系统调用创建一个子进程,而主进程则继续监听, 由该子进程完成对客户请求的代理服务,服务完成后子进程自动终止。这种代理服务器有一个明显的缺点,由于fork()系统诵用需花费较多

25、的cpu 时间,这样当客户比较多时,主进程就疲于创建子进程,代理服务器对客户的响 应速度就会相慢。为了尽可能加快连接的响应速度,采用了预先派生子进程的方法。主守护进 程启动后,先创建监听套接字,并对该套接字调用listen。,然后派生一组子进程, 形成进程池。各个子进程会复制主进程的描述符字。子进程启动后对从主进程继 承而来的套接字描述符调用accepts,没有客户请求时,所有子进程都进入睡眠, 当一个客户请求来到时,所有子.进程被内核同时唤醒,但只有最先被调度的子 进程才能获得与客户的连接,而其它的子进程再次进入睡眠。因为一个请求的到来唤醒了所有的子进程,而最后只有一个子进程被调用, 这种现

26、象叫做惊群现象(thundering herd),虽然这样工作可行,但对系统性能的影 响是显著的。由于同时醒来的进程过多,内核在进程调度上会花费更多的时间。 解决的办法是在调用accept前后设置某种形式的锁,如信号量锁或文件锁,这样 就只有一个 accept 阻塞在套接字描述符上了。对进程池中进程的数量也需要管理,如果进程池中空闲进程太多,则浪费系 统资源;空闲进程太少,就会因为客户连接的突发增加而使池中的子进程耗尽需 要创建子进程,从而影响响应速度。主守护进程除了负责创建进程池,还负责对 进程池的管理。它定时检查进程池中空闲进程数,当空闲进程数低于某一闽值时, 则派生额外的子进程;当空闲进

27、程数大于某一闽值时,则终止部分派生的子进程。主守护进程与进程池的通讯可采用共享内存方式。在共享内存中存入一个数 组,数组的每一项对应进程池中一个子进程,记录该子进程的状态。每个子进程 有3个状态(EMPTY、IDL、BUSY)。EMPTY表示该位的子进程没有创建,IDL 表示该位的子进程处于空闲, BUSY 表示该位的子进程正在处理客户请求。进程 池中的子进程向共享内存传递自己的状态信息(EMPTYo IDLO BUSY),主守护 进程便可通过共享内存检测到各个进程的状态。对共享内存的操作要加锁 (可采 用文件锁)。另外,在处理客户请求过程中涉及到许多内存申请释放操作。为避免内存泄 漏问题,子

28、进程每处理一定数量的连接,就自杀掉。3.2.2 缓存管理缓存是代理服务器用于保存远端服务器的网页,以便客户端能够直接从缓存 中读取,加快响应速度。如果缓存中的网页过期或不存在,则由代理服务器重新 下载,再转发给客户端。采用缓存机制能够有效地降低Internet的信息流量,提 高用户的访问速率。缓存中的网页是以文件的形式存储的,笔者首先定义了一个数据结构记录每 个文件的信息。该结构定义如下:/URL映射文件名过期时间最近访何时间最用修改时间文件大小struct webfile_digcst char URLt 1024;char filepath 1024Jtime cxpire time;ti

29、me last accesstime last modfied tirne; int size;web file digest *hashnext; /hash 谨表中卜个指针 webfile digest *next; 时间儀表中卜-个指针 webfile digesl *prev; 时间链表上一个指针 ;对应每个 URL 存储了映射的文件名、网页的过期时间、最近访问时间、最 后修改时间以及文件大小等信息。记录最近访问时间是为了对缓存实行 LRU (least-recently-used )替换策略,即当缓存的剩余空间小于一定阐值时,要替换掉 一部分最近一直没有被访问的文件。为了快速定位与某

30、个 URL 对应的文件、高效地查询文件的相关信息以及方 便地实行缓存替换策略,笔者设计了 HASH 链表结构和按时间排序的双向链表 结构。设计HASH链表结构是为了快速查询与URL对应的文件的信息,具体实 现是定义一个数组, 数组的每一项指向上面定义的文件信息结构 struct webfile_digest。当查询网页文件时,先将URL做HASH处理,HASH的结果即 为数组的下标,然后查找该项数组指向的链表,查找是否有与 URL 匹配的结构。 设计时间双向链表结构是为了方便实现 LRU 的缓存替换策略。该链表是以文件 的最近访问时间排序,采用双向链表是为了便于快速插入和删除。具体结构即上 面

31、定义的文件信息结构struct webfile_digest。也就是说,HASH链表结构与时间 双向链表结构共享同一数据结构。HASH 链表结构和时间双向链表结构以及缓存替换策略由缓存管理进程实 现和维护。代理服务进程要与缓存管理进程通讯,进行缓存的查询和更新等操作 通讯方式可采用消息队列机制。第四章 核心模块的实现4.1主守护进程的实现主守护进程负责代理服务器的初始化、监听端口、启动一定数量的代理服务子进程并对进程池进行管理,实现流程如下:首先将进程初始化为守护进程, 守互进程的特点是,在后台运行,没有与之相关联的终端建立socket套接字, 绑定ip地址和端口,并监听代理服务端口;建立共享

32、内存和文件锁,申请一块 共享内存,大小为最大进程数,每个字节代表相应进程的状态,将共享内存中每 个状态初始化为EMPTY;启动进程池,启动一定数量的子进程,并在共享内存 中对应位置存入IDLE状态;定时检查进程池中空闲进程数,当空闲进程数低于 某一阂值时,则派生额外的子进程;当空闲进程数大于某一闽值时,则终止部分 派生的子进程。4.2代理服务模块的实现代理服务模块负责处理客户端的请求,提供代理服务。每个代理服务子进程 的流程如下:初始化连接数cone=0:进入循环体;调用accept ()接收连接,要 对系统调用accept()加锁,解决惊群问题;向共享内存对应位置传递BUSY状态: 读取客户

33、请求,解析请求并进行相应处理(具体处理细节如图2所示);将连接 数递增conn+,检查处理的连接数是否到达最大数。如果已经到达,则向共享 内存对应位置传递EMPTY状态并退出程序;否则向共享内存对应位置传递IDLE 状态,再进入。对客户请求的解析处理,采用流程图的形式表示,如图 4-所示。否是否否否是是是斷是否可.过期是苦是曙 件请求?.睜总否 以耀存?存在?虫冏ISS 是已更新羽斷是否叹缓巧?艇冋洽客户端连揍远鯛恥务滞转 发请求遨取响应连接远轴脈务器 转发请或按收客户消求識询耀存读取耀存文昨返冋给客户端返凹给夸户端返回錚*户端连複越靖服务器返冋日阴响应昴収响应更新滦存里新髓手图 4- 客户请

34、求处理流程图代理服务子进程在接收到客户的请求后,首先判断该请求是否可从缓存读 取,判断的根据是如果请求的类型是GET,且请求头中不含用来表示不可缓存 的 Cache-Control:no-cache 或 pragma: no-cache 字段,则可以从缓存读取;否则直 接连接远端服务器,获取响应后直接转发给客户端。如果可以从缓存读取,则开始查询缓存文件。根据查询结果做不同的处理。 查询结果分为两种情况。一种情况是查到该缓存文件且文件没有过期,此时判断客户的请求是否是条 件请求,即客户端询问客户机器上保存的文件是否己经修改,如果是条件请求, 则判断文件的有效性,如果有效,则返回给客户端 304响

35、应,告诉客户端客户机 器上保存文件依旧有效:若无效则读取缓存文件返回给客户;如果客户请求不是条 件请求,则可以直接读取缓存文件返回给客户端。另一种情况是没有查到该缓存文件或查到的缓存文件已经过期,此时也要判 断是否是条件请求,如果是条件请求,则连接远端服务器,转发该请求,获取响 应后,判断该响应是否是已更新的网页,如果是,则判断该网页是否可以缓存(判 断依据是, 如果响应为 200, 且请求头中不包含用来表示不可缓存的 Cache-Control:no-cache 或 pragma:no-cache 字段,则可以缓存,否则不可以),可 以缓存则更新缓存并将结果返回给客户端,不可以缓存则直接将结

36、果返回给客户 端;如果获得的响应是其它结果则直接转发给客户端。如果请求不是条件请求, 则连接远端服务器,转发请求获取响应,再根据响应结果判断是否可以缓存,可 以缓存则更新缓存并将结果返回给客户端;不可以缓存则直接将结果返回给客户 端。4.3 缓存管理进程的实现缓存管理进程负责对缓存的快速查询、添加和删除等维护操作。工作流程如 下:建立HASH数组和时间链表并初始化;进入循环体:阻塞式读取消息队 列中的消息:根据消息类型做相应处理,如果是查询消息,则查询HASH 表,返回匹配的结点给相应的代理服务子进程:如果是更新消息,则 建立新的结点,插入HASH表,同时也插入时间链表的头部;计算缓冲区已经

37、使用的大小,如果超过一定的阂值,则通过时间链表中删除过期文件和最久未使用的文件及相应于时间链表上的结点结构,直至满足缓冲区大小的要求;回到。结语本文所设计的 HTTP 代理服务器采用了进程池技术和缓存机制以提高性能。 进程池技术的采用大大提高了代理服务器的响应速度和效率 ;缓存机制有效地降 低了 Internet的信息流量,提高用户的访问速率;同时也有效地解决了进程间的通 讯、惊群等技术问题。通过试验证明,我们设计的 HTTP 代理服务器相对于传统 的 HTTP 代理服务器在性能上有很大提高。参考文献:1Fidlding R,Gettys J. Hypertext transfer proto

38、colHTTP/1.1 RFC 2068S. 1997. 李家欣,倪亮,王乘具备高速缓存的HTTP代理防火墙的设计与实现J.计算 机工程, 2003,29(3):84-85.Richard Stevens W.LTNIX网络编程卷1:联网的API:套接字与XTIM.北京:清 华大学出版社.1999.4Berners Lee T, Fielding R. Hypertext Transfer Protocol-HTTP/1.0 Z .Inadequate address: RFC1945,1996.潘志松.网络防火墙中的代理技术N.计算机世界报,1999-3-8-(10).张宝社.Windows下的网络编程M.合肥:中国科学技术大学出版社,1997.7 Andrew Cormack. Caching on JANET-CAN ReportM. Cardiff:University of Wales, 1996.涂育红,张颖江.Web数据采集器的研究与实现D.湖北工学院电气工程与计 算机科学系,1998.9涂育红,张颖江.Internet主页后台采集器的研究与实现 J.湖北工学院学 报,1999,14(1,2):2529.

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!