(计算机软件与理论专业论文)web代理服务器的研究与实现.pdf_第1页
(计算机软件与理论专业论文)web代理服务器的研究与实现.pdf_第2页
(计算机软件与理论专业论文)web代理服务器的研究与实现.pdf_第3页
(计算机软件与理论专业论文)web代理服务器的研究与实现.pdf_第4页
(计算机软件与理论专业论文)web代理服务器的研究与实现.pdf_第5页
已阅读5页,还剩95页未读 继续免费阅读

(计算机软件与理论专业论文)web代理服务器的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

w e b 代理服务器的研究与实现 摘要 “w e b 代理服务器的研究与实现”是信息产业部“电子发展基金”支持的 “网络专用服务器”项目下的一个子课题。当前i n t e m e t 在迅猛发展,但网络 带宽的增加与信息量和使用群体的增长却并不同步,从而使w e b 代理服务器成 为缓解这一矛盾的一种有效途径。 在本论文中,首先讨论和总结了w e b 代理服务器的基本理论、工作原理和 缓存技术,研究了与缓存一致性相关的肼p 机制。通过对五种网络服务器内 部架构的分析和比较,最后提出:单进程事件驱动结构( s i n g l ep r o c e s se v e n t d r i v e n - - s p e d ) 适合用于实现高性能的w e b 代理服务器,同时分析并给出了单 进程并发服务器中关键的网络1 1 0 实现技术。在对w e b 代理服务器及其技术研 究的基础上设计了一个基于单进程事件驱动的w e b 代理服务器。本服务器采用 并实现了异步事件驱动机制,所有网络i o 的实现使用了非阻塞方式;服务器内 部实现了非阻塞的域名解析机制,并实现域名地址缓存:使用了常驻内存的缓 存元数据并通过h a s h 表管理,加快了缓存的查询速度;对保存在磁盘上的缓存 文件采用特殊的映射机制,减少目录深度并使文件分布均匀;本服务器实现了 l r u - - t h r e s h o l d 缓存替换算法,并辅以随负载变化而动态调整的缓存维护机制: 最后,还实现了基本的预读技术。 通过对w e b 代理服务器的功能和性能测试,表明服务器实现了设计目标并 具有较高的性能。 关键词: w e b 代理,单进程事件驱动,非阻塞i ,o ,代理缓存,域名缓存 w e b 代理服务器的研究与实现 a b s t r a c t r e s e a r c h & i m p l e m e n t a t i o n o fw e bp r o x yi so n e s u b s u b j e c t o f h n e t w o r kd e d i c a t e ds e r v e r l ,a e l e c t r i cd e v e l o p m e n tf u n d s “s u p p o r t i n g p r o j e c tf r o mm i n i s t r y o fi n f o r m a t i o ni n d u s t r y c u r r e n t l yt h ei n t e r n e ti s g r o w i n ge x p l o s i v e l y ,b u tt h en e t w o r kb a n d - w i d t hd o e s n tc o m eu pw i t ht h e i n c r e a s eo fe m e r g e di n f o r m a t i o na n dp o p u l a t i o nu s i n gt h ei n t e m e t , a l lt h e s e m a k ei ta l le f f e c t i v er e s o l v et oi m p l e m e n tt h ew e bp r o x yt oa l l e v i a t ei s s u e so f n e t w o r kl a t e n c ya n dt r a f f i c i nt h i st h e s i s , f i r s t l ni td i s u s s e sa n ds u m m a r y sw e bp o r x y sb a s i ct h e o r y , w o r k i n gp r i n c i p l ea n dc a c h et e c h n o l o g i e s t h eh t t pm e c h n i s ms u p p o r t i n g c a c h ec o h e r e n c ei sr e s e a r c h e da sw e l l t h r o u g ha n a l y s i n ga n dc o m p a r i n g d i f f e r e n ti n t e m a la r c h i t e c t u r e so fn e t w o r ks e r v e r ,i ti se m p h a s i z e dt h a tt h e s i n g l e p r o c e s se v e n td r i v e n ( s p e d ) a r c h i t e c u r ei s a d a p t t o i m p i e m e n t e f f e c i e n c yw e bp r o x ma tt h es a i n et i m e , t h er e s o l v e m e n to fc r i t i c a ln e t w o r k i oi s s u e sr e l a t e dt os p e di sa n a l y s i e da n df i g u r e do u t b a s e do nt h e p r e v i o u s l yr e s e a r c ha b o u tw e bp r o x mas p e d b a s e dw e bp r o x yi sd e s i g n e d t h i ss e r v e r a d o p t s a n d i m p l e m e n t s t h e a s y n c h r o n o u s e v e n td r i v e n m e c h a n i s m , a l lt h e s en e t w o r ki o si nt h es e r v e rw o r ku n d e rt h en o n - b l o c k i n g s t y l e t h en o n - b l o c k i n gd o m a i nn a m er e s o l u t i o nm e c h a n i s mi si m p l e m e n t e d i nt h ei n t e r n a lo ft h es e r v e r , t h er e s u l t so fr e s o l u t i o ni sc a c h e dt o o t os p e e d u pc a c h eq u e r y , t h ew e bp r o x yk e e pc a c h e m e t a d a t a si n - m e m o r yw h i c hi s m a n a g e dt h r o u g hh a s ht a b l e s p e c i a l l ym a p p i n gf u n c t i o ni s u s e dt om a p m e t a d a t ao fc a c h et ot h ec a c h e df i l ei nd i s k , i ta i m st od e c r e a s ed i r e c t o r y d e p t ha n dm a k et h e s ef i l e s d i s t r i b u t e e q u a l y t h i s s e r v e ru s eal r u t h r e s h o l dc a c h er e p l a c e m e n ta l g o r i t h m m ,ad y n a m i cc a c h em a i n t e n a n c e m e c h a n i s ma c c o r d i n gt ot h er e q u e s to v e r l o a d v a r i e t yi su s e dt os u p p o r tt h e c a c h em a n a g e m e n tt o o a tl a s t ,as i m p l ep r e f e t c h i n gt e c h n i q u ei si m p l e m e n t d i n t h i s w e b p r o x y t h et e s tw o r k e sa p p r o v e dt h a tt h ed e s i g nf u n c t i o ni ss a t i s f i e da n dt h e s e r v e ra c h i e v e sh i g hp e r f o r m a n c e k e y w o r d s : w e b p r o x y ,s p e d ,n o n b l o c k i n gi o ,p r o x yc a c h e ,d n sc a c h e 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:兰盛日期:2 。电年步月r 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:兰二盘生导师签名: 日期:加一2 年巧日 w e b 代理服务器的研究与实现 第一章引言 1 1 背景 随着i n t e r n e t 的普及和不断增 ,使用团体从最初的少数学术机构到现在 的普通大众,2 0 0 1 年8 月统计全球访问i n t e r n e t 的人数达到5 1 3 4 1 亿 ( 型巡盟:丑i ! ! ! 坠q 里统汁) ,2 0 0 2 年1 月d n s 中的主机数达到1 4 7 , 3 4 4 ,7 2 3 台 ( 型型型:i 墼:殳! g 统计) 。i n t e r n e 街数级的增长导致了沉重的网络负载和网络服务 响应时 u 的迟缓。 据统计数据显示,i n t e r n e t 中数据流量的增k 的首要原因足w o r l dw i d e w e b ( w w w ) 的增长( 2 0 0 2 年1 月统计的士机中1 2 0 3 8 5 6 台拥有w w w 的域 名) ,其中很人比例的是h n p 流量。9 5 年左右,l n e r n e t 中的流量卡要是源于 f t p 清求占4 4 ,而现在,在大多数地方的网络流量中有7 5 8 0 是源于 h li p 。 可以认为w w w 是一个提 供批享数据访问的最人的分布 式的信息系统。图1 1 显示了 w w w 的静态例页的大小及其 变化。随崔w w w 持续的指数 级的增氏( 静态的w e b 页面每 月增加大约1 5 ) ,现在的w e b 用户在i n t e r n e t 上遇到的两个 静 走 网 负 数 e h n 万 图1 1 静态网页数量 最大的问题是刚络拥塞和服务器过载。至少在现存来说w w w 的快速增 归助 于它的使用很廉价,并且使t l jw w w 服务来获i 跌信息比其它的方式更方便、快 捷。w w w 拥有的资料吸引了广泛的兴趣群体,蜘i 柯:新闻,教育,科学研究, 体育,娱乐,证券,旅游,商业,天气,地图等等。 虽然,i n t e r n e t 的主干容量每年增长速度为6 0 ,但在可预见的未来内, 随着越来越多的信息服务加入到w e b 上米,对带宽的需求仍超过这一进度。如 果不采取一些解决的办法,由丁这利z 增长进度带来的问题使w w w 变得更拥摩, 它的吸引力:陌会人大减小甚至消失。 w e b 代理服务器的艇究jj 实现 从9 0 年代仞期研究人员就在研究如何提岛w e b 自性能。在客户刚近缓存访 问率商的对象是缓解w e b 服务瓶颈、减少i n t e r n e t 流量利握高w w w 扩展性的 一种有效的途径。在一个集团- h 通常在防火墙内使用代理( p r o x y ) 服务器来 作为访问i n t e r n e t 的中转服务器,区 此产尘了用代理服务器来缓存数据的怨法。 处于安全的考虑和资源的限制,很多公r d 在他们f i :j 防火墙内( 或州一机器上) 使用一种叫“代理”的h t t p 服务器。代理服务器通常接收防火墙内的客户请 求再把它们中转到外部的远程服务器 既然,防火墙内部的所有用户通常 都要共享这些代理服务器,很自然 地,使用代理服务器米缓存数据是 有效的。而使用这些代理j :| 6 i 务器的 用户们,山于工作或兴趣的原因, 会更有机会访问一些同样类别的网 页。这样,在代理服务器中,先前 用户所访问过并缓存下的页埘在不 长的时间内很可能被再次访问。因 此,在代理服务器上的w e b 缓存巧: 世司阻:节约嘲络带宽,而且 + 以减 少客户访问的延迟时间。 并 i y y l ; _ j 应返回给客j o ( 如图1 2 所示) 。 1 1 、p 服务碍 1 1 1 1 、p j 】【i 钉器 t 1 服务器 w e b 缓存是4 i 是有效的呢? 叨是吼我们缓存下的网页是不是会被f + j - 次 的访问? 网此能减少多大的网络流量? 研究表明,w e b 代理服务器的命t n 率( 缓 存网页被再次访问的比例) 为2 0 3 00 , 4 左右,这样减少了的网络流量是_ i ! 观 的。而同叫用户也可以感觉到随之带来的响府州川的变短。 1 2w e b 代理服务器的作用 w e b 代理服务器提供了一个有效访问i n t e r n e t 的途径,它的实施确如下 优点: 减少网络带宽的消耗,从而减少网络流量和减轻网络捌塞。 减少了防问延迟,这是盯于两力面的原因:一是,频繁访问的网页山 荆近的w e b 代目甥墨务器取| j ,而不是远程的服务器,这样传输延迟 墙火 防群黯防的务 征 服啦 w e b 代理服务器的研究与实现 降低了;再者,由于网络流量的减少和远程服务器负载的降低,使取 回没缓存的网页的时间也相对的减少了。 降低远程w e b 服务器的工作负载,由于在网络上缓存数据的存在, 减少了直接访问w e b 服务器的次数。 增加可用性。由于网络原因或者远程服务器故障导致远程服务的不可 用,但此时客户可以从w e b 代理服务器处取回份缓存。这样,加 强了w e b 服务的健壮性。 安全性的增强。通过w e b 代理服务可以进行用户访问控制、限制用 户的访问范围、内容过滤等。 提供用私有i p 访问i n t e m e t 的方法。有限的i p 资源的不足,己经突 出。使用代理服务器使一个集团,只要拥有一个外部i p 就可拥有对 i n t e m e t 的访问。 提供了一种管理手段。在代理服务器上可以对用户进行管理,还可实 现流量计费等功能。 w e b 缓存还带来一个副作用,那就是给我们提供了一个对一个组织的 使用模式进行研究的机会。 然而,我们也看到,w e b 代理服务器的使用也有一些缺点: 一个主要的缺点是由于w e b 代理服务器上缺乏适当的缓存更新机制导 致客户可能看到过期的网页( w e b 服务器上的相应网页已经有了变 化) 。 由于缓存未命中导致代理服务额外的处理带来的访问延迟的增加。 单一的代理服务器带来单点故障。 代理服务器的缓存的使用减少了远程的源服务器的“点击率”,这样 使拥有这些服务器的组织的统计信息减少,他们可能因此希望不要缓 存他们的网页。 所以,围绕w e b 代理服务器的研究就是怎样更大地发挥它的优势。本文将对 w e b 代理服务器的实施中的关键要素进行讨论,并且设计和实现了一个w e b 代理 服务器。 w e b 代理服务器的研究与实现 1 3 论文内容组织 本文从w e b 代理服务器的概念入手,分析了w e b 代理服务器的基本原理、 相关的网络协议及其和w e b 代理服务器的关系,接着讨论了w e b 代理服务器中 的缓存一致性问题及其解决的技术。文中还分析了服务器设计中的关键问 题一一服务器内部结构及不同结构的比较和选择。在以上研究的基础上,设计 并实现了一个基于s p e d 的w e b 代理服务器。后续章节的主要内容安排如下: 第二章理论基础及相关协议 主要讲述了w e b 代理服务器的概念和基本原理、典型的几种实施方案,然 后分析了几种与w e b 代理服务器相关的网络应用层协议的主要特点及其与w e b 代理服务器的关系。 第三章w e b 代理服务器缓存技术 首先讨论了w e b 对象的可缓存性,接着分析了两种缓存一致性模型并总结 了相应的缓存一致性维护机制。最后,研究了与缓存一致性和w e b 代理服务器 性能相关的缓存替换技术和预读技术。 第四章w e b 代理服务器内部结构的研究 研究了w e b 代理服务器实现中的关键问题一服务器的内部结构,分析并比 较了五种服务器结构,在此基础上提出了:s p e d 构架适合用于实现高性能的 w e b 代理服务器。最后分析s p e d 服务器实现中的网络非阻塞i o 技术及其实 现。 第五章基于s p e d 的w e b 代理服务器的设计 主要讲述了个基于s p e d 的w e b 代理服务器的设计,各个模块的设计和 架构。 第六章w e b 代理服务器的实现 着重讲述了w e b 代理服务器实现中的关键技术、相关算法和主要流程等。 第七章功能及性能测试 从功能和性能两方面对w e b 代理服务器进行了测试,测试结果表明系统实 现了设计的功能并达到较高的性能。 4 w e b 代理服务器的研究与实现 第二章理论基础及相关协议 2 1w e b 代理服务器的基础理论 2 1 1 什么是w e b 代理服务器 w e b 代理服务器,也叫w w w 代理服务器,或者w e b 缓存服务器( w e b c a c h i n g ) 等等,它们指的同一个实体。 根据r f c 定义,w e b 代理服务器是: 一个既作为服务器又作为客户的中间程序,它的功能是代替其它的客户发 起请求,它将这些请求在自己内部做处理,或者将它们传递( 可能要做些转换) 到其它的服务器。 在t c p i p 网络中,传统的通信过程是这样的:客户端向服务器请求数据, 服务器响应该请求,将数据传送给客户端。在引入了代理服务器以后,这一过 程变成了这样:客户端向服务器发起请求,该请求被送到代理服务器;代理服 务器分析该请求,先查看自己缓存中是否有请求数据,如果有就直接传送给客 户端,如果没有就代替客户端向该服务器发出请求。服务器响应以后,代理服 务器将响应的数据传送给客户端,同时在自己的缓存中保留份该数据的拷贝。 这样,再有客户端请求相同的数据 时,代理服务器就可以直接将数据 传送给客户端,而不需要再向该服 务器发起请求。 这个过程如图2 1 所示: m 2 - 1 代理服务嚣模型 2 1 2 在什么地方实现缓存? w e b 缓存可以有几个不同级别缓存:从无缓存到多级缓存。当一个客户请 求远方的一个w e b 对象( 如网页,多媒体流等) 时,这个对象从源服务器开始, 经过网络,最终到达客户中f 刚可能经过一个或多个代理服务器。在这一路径 上,我们可以在不同的地方,可实现几种不同方式的缓存: 一5 w e b 代理服务器的研究与实现 1 浏览器缓存( b r o w s e rc a c h e ) w e b 浏览器按一定的缓存管理策略将最近访问的w e b 页面的备份保留在本 地。它只能为一个客户保存这个备份,所以浏览器缓存不为其它的用户提供共 享。有两种形式的浏览器缓存:非永久性缓存一随用户退出浏览器而删除缓存; 永久性缓存一当浏览器关闭后依然保存缓存。 2 代理服务器缓存( p r o x yc a c h e ) 通常w e b 代理服务器就是防火墙机器上运行的一个h t r p 服务器。防火墙 作为一个安全系统,它保护内部网络上的机器不受有意或外面的非授权访问的 侵害,它既可用硬件实施也可用软件实施。“代理”是一种手段,通过它用户不 需要有专门的防火墙配置,就可允许访问通过防火墙。代理服务器缓存处于多 个客户到达多个服务器的路径上。同样的一台代理服务器可以让内部网内的所 有用户都使用。这样在代理服务器上的缓存的网页就能为多个客户提供服务, 提高了效率。当只有一个单独的代理服务器缓存在客户和服务器之问工作时, 它就叫做“独立缓存”。如果用了一系列的缓存服务,它们通过相互合作来提高 性能,那这种情形就叫做“合作缓存”,它们的构成可以是“层次结构” ( h i e r a r c h y ) 的,也可以是“非层次结构”( n o n h i e r a r c h i c a l ) 的。 3 服务器缓存( s e r v e rc a c h e ) 服务器缓存是指缓存放在w e b 服务器的前面。它是由w e b 服务器的管理员 来实施,而不是访问w e b 服务器的客户。这样做的目的为了将w e b 服务器的网 页进行缓存和分布,以减少服务器处理请求的负担。服务器缓存又被称为“反 向代理”( r e v e r s ep r o x y ) ,“h 订p 加速服务器”( h t y pa c c e l e r a t o r ) ,或“源 服务器代理”( s u r r o g a t eo r i g i ns e r v e r ) 。 4 三种缓存方式的对比 浏览器缓存通过将用户先前访问过的网页在用户的内存和硬盘上缓存来减 少延迟时i 刮。浏览器支持缓存管理的一些必要的功能,如决定缓存的大小,最 长的保持时间和维护缓存的一致性等。从用户的观点看来,在整个网络效率上 的考虑最重要的因素是减少延迟时问。而这个个人的目标和一个集团或网络系 统来说有是相矛盾的因为个人用户为了减少访问的延迟时间,可能采取预读 - 6 w e b 代理服务器的研究与实现 技术把有可能将要访问的网页提前下载下来,在一个集团内这样做的结果是增 加了网络流量。 代理服务器缓存在于网络中间,它能接收许多用户的请求。所以到达代理 服务器的请求可能在客户之间交叉引用。当一个请求在代理服务器得到满足时。 就减少网络流量,同时也减少了请求的延迟时间和w e b 服务器负载。因为代理 服务器要管理许多客户请求的网页,它必须考虑全局的性能。这时的缓存的管 理就比浏览器缓存的管理更重要。 服务器缓存和代理服务器缓存类似。不过,它接收的是它所代表的w e b 服 务器的请求,在用户看来它就是真实的w e b 服务器。它们不是为最终用户实施 的。而是为w e b 发和者。它的最主要的目的解决一些热门站点遇到的扩展性和 工作负载的问题,它也起到减小网络流量的目的。同时还有安全上的考虑,通 过它客户就不是直接访问w e b s e r v e r ,而是通过了一个中间服务器。 虽然在操作系统中也有多种的缓存存在,但由于w e b 环境的特点使得 w e b 缓存有着和传统的( 如文件系统) 缓存系统不同的考虑。通常传统的缓存 系统中的缓存的数据有固定的大小( 如页或块) 。读取一个页的时间也可认为是 固定的( 如:是内存访问时间,或i o 访问时间) 。而w e b 缓存的对象的大小变 化范围很大,从几百字节到几兆字节。并且在w e b 环境中取回个对象的时 间往往是无法预知的。在w e b 缓存系统中“弱一致性”模式也是有用的,而这 在一个内存缓存系统中是绝不可接受的。这些区别导致了许多在传统缓存系统 中所使用的机制不适合在w e b 缓存中使用。 2 1 3 三种典型的w e b 代理服务器实施方案 根据w e b 代理服务器的实际实施,从客户以及w e b 服务器的角度来看。我 们可以把它们分为三类: 1 传统的w e b 代理 传统的w e b 代理需要 用户在其浏览器中进行相 应的配置,使浏览器将 r r r p 请求发向代理服务 器。这种工作方式是我们通 常最熟悉的,因为用户可以 7 图2 2 传统w e b 代理 w e b 代理服务器的研究与实现 知道它的存在。这种方式的优点是:便于对用户进行管理;不需要其它的支持 手段:可提供的服务种类多。 但它也有明显的缺点:存在单点故障,代理服务器的不可用导致网络的不 可用;需要每个用户进行配置;扩展性不好,一个代理服务器要处理所有的请 求。 2 反向代理 当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代 理服务的方式称为反向代理服务。 反向代理主要用于w e b 服务器加速和通过它加强w e b 服务器的安全,为 一个或几个本地网站作缓存,或者让外部用户访问内部网络的服务器。反向代 理还是支持w e b 主机罔( 将多个虚拟域名映射到一个物理网站) 的有用的机制, 许多i n t e r n e t 服务 提供商( i s p ) 越来 越多的提供这种服 务。反向代理的工作 方式也就是前面所 讲的“服务器缓存”, 这里就不再重复讨 论。 3 透明代理 透明代理不需客户端作任何代理设置当数据报文( 根据t o p 端口,如8 0 ) 经过路由器时,被重定向到代理服务器的代理端口( 如8 0 8 0 ) ,然后由本地代理 服务器向外请求所需数据然后拷贝给客户端。 透明代理消除了一个代理服务器的最大的缺点:需要在w e b 浏览器进行配 蜀。在这种工作方式下可以实现不同种类的管理方式,如在多个代理服务器之 间实现负载平衡。透明代理的强大的地方也是它的薄弱的地方:它干涉了端到 端的通信但又不维护连接端点的恒定。当应用程序的请求在连续的请求中或一 个逻辑的请求涉及多个目标对象时要求是有状态的,这时就遇到了问题。另外, 由于要在所有的外出的i n t e r n e t 流量中要过滤出h 丁r p 请求增加了额外的延迟。 8 w e b 代理服务器的研究与实现 实现透明代理的方法:端口重定向( 如在l i n u x 系统下用i p c h a i n s ) ,基于 路由( 路由器通过基于策略的路由提供h t t p 请求的重定向) ,基于交换机( 利 用l 4 交换机作负载平衡) 。 透明代理的优点是明显的:它实现、管理简单一不用设置在客户端设置浏 览器;中心控制一用户不能使浏览器绕开代理。 但它有它的不足,除了上面所说的外,还有:健壮性不好一依赖于稳定的 路由( 客户和源服务器间 的路由,可能绕过代理) ; 用户控制一剥夺了用 户的控制权;对浏览器的 依赖性一需要客户的浏览 器在h t t p 请求头( h o s t 域) 中提供原服务器的域 名。 图2 4 透明w e b 代理 2 1 4 典型的w e b 代理服务器工作流程 一个w e b 代理服务器的基本工作如图2 5 ,我们来看看这个过程及其中的考 虑: 当用户浏览w e b 页面时,用户的请求来到服务器。不管代理服务器怎么处 理,用户看到的是 返回给他的w e b 页面。和用户打交 道的地方在起始 和终止的地方: u r l 请求进入系 统;系统将页面做 为响应。性能的衡 量一般是以用户 的观点来看的,当 然在现实中也提出了一些其它的标准。 图2 5 代理服务器基本流程 9 w e b 代理服务器的研究与实现 用户的请求作为h r r r p 命令进入代理服务器。这时,在用户看来它是单独 的一个代理服务器,但这个服务器可能是分布式的。这时,流程图可能表达的 是,进来的请求可能面对一定数量的服务器系统,每一个操作可能在不同的机 器上完成。 当接收到一个请求时,第一步操作是判断请求的目标对象是否已经保存在 缓存中。这时可以是一个简单的查询缓冲中的内容,然后返回一个布尔值。同 样的,如果缓存的查询过程是分布式的就涉及到一系列复杂的操作过程了。 如果目标对象在缓存中存在,接下来做的就是检查这个缓存的备份是否是 “有效的”( v a l i d ) 。这里的“有效”的定义,在不同的代理服务器实施方案中 可能是不同的。就是通过它的定义,代理服务器的设计者可以控制一个一致性 模式和能够缓存的目标对象的范围。 我们来看看一致性的问题。代理服务器缓存的最弱的一致性模型在这个叫 候,把所有的缓存的对象都认为是合法的。同样的道理,最强的一致性模型总 是回答“否”,每个请求的目标总要重新向源服务器取回。在这两种极端的情况 之间就存在着一致性模型考虑的空问了,可以通过缓存对象保存的时间,或者 从源服务器取回的对象的生存时间,也可能用其它很多的选择来判断。最后将 有效的对象直接返回给请求的用户。 一个对象是否是“可缓存的”( c a c h e a b l e ) ,也在这个阶段考虑的。一个w e b 对象太大( 如,很长的视频流) ,也可能在每次请求之间会改变( 如是c g i 的内 容) ,那么认为它是“不可缓存的”( u n c a c h e a b e ) 。 如果当发现缓存的对象是“无效的”( i n v a l i d ) 或者在缓存中没找到这个对 象时,系统就会从源服务器重新取回数据。当数据下载下来后,就面临将它缓 存的任务。这个阶段的工作就涉及到了缓存替换( r e p l a c e m e n t ) 策略的问题: 当缓存没有足够的空间来存储下载下来的数据时,它为了腾出空间就必须从缓 存中收回一些对象。 回收哪些对象的策略是由设计者来决定的。还有决定什么情况时缓存是 “满的”也是由设计人员来决定的,不是一定要根据空间的够与不够来决定是 否要进行替换工作也可以使用缓存的对蒙的数量作为标准,这都不是唯一的。 代理服务器从源服务器取回的对象不只限于用户的请求它可以不需要有 用户请求就去把w e b 对象取回这个技术叫做“预读取”( p r e f e c h i n g ) 。在一 个系统中是否实施在有用户请求来到前就把w e b 对象取回,也是一个设计考虑。 1 0 w e b 代理服务器的研究与实现 2 1 5 理想的w e b 代理服务器的标准 一个理想的w e b 代理服务器要达到什么的标准呢? 他们有这些: 1 0 0 命中率。即每次客户请求一个可缓存的w e b 对象时,它就在缓存 中,并且是它是有效的。 缓存网页迅速返回客户。数据从缓存返回客户比从源服务器取回要快。 没有不必要的w a n 流量。除非缓存系统中没有请求的页面,否则不会 向外发起请求。 没有不必要的缓存内容拷贝。这样在达到一定命中率下,就只需较少的 磁盘空间。 1 0 0 的正常运转。可通过提供冗余的代理系统和冗余的网络连接来实 现。 不影响非w e b 流量。有些系统要截断w e b 和非w e b 流量。 不增加硬软件的开销 实现客户、代理和中间系统( 如交换机,路由器) 的“零”管理 显然,一个理想的系统是不能实现的。但一个系统越靠近这些目标,它就 能更好的为客户和管理人员服务。 2 2w e b 代理相关的网络协议 2 2 1u r i ,u r l 和u r n w e b 是一个信息空间,我们怎么来在这个空间中定位,找到我们所需要信 息。而“统一资源标志”( u n i f o r mr e s o u r c ei d e n t i f i e r - u r i ) 就在用来定位这 个空问中的位置的。 和w e b 数据格式不同,h t m l 仅是一种重要的格式但不是唯一的,w e b 协 议也一样,我们不只有h t t p 一种协议。但却只有一种w e b 名字地址技术: u r i 。 u r i 是一个字符串,用它来标识w e b 上的资源:文档,图像,下载文件, 服务,电子邮箱和其它的资源。这样通过一个资源的u m ,就可以定位这个资 源进一步使用它。 这里有三个概念:u ,u r l ,u r n 。这三个概念是什么关系7 1 1 w e b 代理服务器的研究与实现 一个u r i 可以进一步的分类为定位符和名字。“统一资源定位符” ( u n i f o r mr e s o u r c el o c a t o r - u r l ) 是u m 的一个子集,它通过资源的首要 的访问机制( 如,它所在的网络位置) 来标识资源。“统一资源名”( u n i f o r m r e s o u r c en a m e - - u r n ) 也是u 砌的子集。它是一个在全局范围内唯一和永久 的标识( 即使这个资源已不存在或不可用) 。u r n 和u r l 的不同在于它的主 要目的是让资源有一个持续稳定的标识它只是一个名字,没有指出到什么地 方去查找数据。它们三者的关系,如图所示: f t p : g o p h l tr ; h t t p : 日t cu f n : u r n g u h i 3 图2 6 u r l ,u r n 和u r i 我们这里重点讨论u r l ,代理服务器必须通过它才可以定位请求响应的资 源。下面看看,u r l 的标识格式: u r l 只允许用七位a s c i i 文本来表示u r l 。除了字母数字字符,u r l 还 允许出现的字符是:美圆符( $ ) 、横线( 一) 、下划线( 一) 、圆点( ) 、加号( 十) 、 感叹号( ! ) 、星号( + ) 、单引号( ) 、以及左括号和右括号。其他特殊字符用 跟上该字符a s i c i i 码的十六进制表示,如空格符为2 0 。 下表为每种u r l 模式的格式和缺省值: 表2 - 1 u r l 格式 模式 u r l 格式缺省值 f t p f 姬; 趔庄:u 令 主机:端口路释用户名= a n o n y m o u s 口令= 用户电子邮件地址 端u = 2 1 m p b 虫:“主扭:端口路径? 检索串 端口= 8 0 h t t p s b ! 卫苎型圭自l :端口路径? 检索串 端口= 4 4 3 g o p h e r g o p h e r :- i : k :端口路径 端口= 7 0 m a i l t o 盟a i ! 地;刖宴垡土机 无 n e w sn e w s :新闻矧幺新闻:消息标识符无 n n t p n n t p :,主机新闻组名,文章编号 端口= 1 1 9 1 2 w e b 代理服务器的研究与实现 t e l n e t ! i n ! ;比囝已:口令 主机:端口 端口= 2 3 如果省略,向用户 提示 键入用户名和口令 w a i s 坐选; 主扭:端口数据库 端口- - 2 1 0 f i l e f i l e :主机路径 无 p r o s p e r o o r o s o e r o :主机:端口对象名:域= 值端口= 1 5 2 5 正确解析u r l 是w w w 代理正常工作的前提,为了更清楚的理解u r l 下表给出对u r l 串中的通用字符的详细说明: 表2 - 2 u r l 通用字符 字符示例含义 | l h t t o :w w wu e s t ce d u c n 紧跟在模式名后,说明该u r l 遵从c i s s h t t p :w w w u e s t c e d u c n :8 0 用于分割主机名和端口号 | h t t o :w w w u e s t c e d u c n i a v a o v e把主机名、端口号和路径分割开来,在 r v i e w i n d e x h n lu r l 路径中指示目录的层次和结构 w h a t i s p l ? k e y w o r d h 兀r u r l 的路径中,? 表示“检索串” 的开始i 其后的字符串不再解释成为文件 名,而是用户提交的数据 w h a t i s ? c a t s + d o g s h t t pu r l 的检索串中,加号表示单词的 布尔和 c g i f i n d b o o k ? k e y w o r d - u n i x h t t p u r l 的检索串中,等号用作字段名 和值的分隔符 c g i r e g i s t e r ? n a m e = f u & c l a s s = 9 7 s 6 在哪u r l 的检索串中分隔关键字值 对 w w w 2 c s u e s t c e d u c n 一x y z 在路径名的开始,表示资源在指定用户的 工作目录 c i s s :i n t e r n e t 通用模式语法 2 2 2h t t p 协议 1 h t t p 协议简要介绍 h t t p 是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适 用于分布式超媒体信息系统。它于1 9 9 0 年提出,经过几年的使用与发展,得到 1 3 w e b 代理服务器的研究与实现 不断地完善和扩展。目前在w w w 中广泛使用的h t l l p 1 0 和h t t p i 1 ,而且 h t t p n g e x tg e n e r a t i o no f h t t p ) 的建议已经提出。 h 1 v 1 1 p 协议的主要特点可概括如下: 1 ) 支持客户,服务器模式。 2 ) 简单快速:客户向服务器请求服务时只需传送请求方法和路径。请求 方法常用的有g e t 、h e a d 、p o s t 等。每种方法规定了客户与服务器联系 的类型不同。由于h t t p 协议简单,使得h t t p 服务器的程序规模小,因而 通信速度很快。 3 ) 灵活:h t t p 允许传输任意类型的数据对象。正在传输的类型由 c o n t e n t - t y p e 加以标记。 4 ) 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完 客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传 输时间。 5 ) 无状态:h t t p 协议是无状态协议。无状态是指协议对于事务处理没有 记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传, 这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先 前信息时它的应答就较快。 h n p 消息由客户端到服务器的请求和由服务器到客户端的回应组成。完整 的请求( f u l l r e q u e s t ) 和完整的回应( f u l l r e s p o n s e ) 都使用r f c 8 2 2 中实体 传输部分规定的消息格式。两者的消息都可能包括标题域( h e a d e r s ,可选) 、实 体主体( e n t i t yb o d y ) 。实体主体与标题间通过空行来分隔( 即c r l f 前没有内 容的行) 。 h t t p 请求消息和回应消息的内容是有区别的,简单的来看:请求消息= 请 求行【+ 请求头】+ 实体:回应消息= 状态行【+ 回应头】+ 实体。下面是这两种 h t t p 消息的结构示意: h 1 f r p 请求消息: h t t p 请求内容 h t t p 回应消息: h 1 v r p , - 1 4 w e b 代理服务器的研究与实现 回应内容 w e b 代理服务器对h r 】t 消息的处理主要的是解析请求和回应当中的请求 行( 或状态行) 和标题域,从而决定怎样替发起请求的客户转发请求、转发给 谁等。w e b 代理服务器在决定是否要将一个网页在本地缓存,以及可以保留多 久,采取怎样替换策略等等都和h t r p 消息的标题域有关。 受篇幅所限,具体h r r p 协议的内容就不在这里一一列举,可参见有关的 r f c 文档。 2 h t t p 1 0 和h 丌p 1 1 的主要区别 h t t p 1 0 协议是很成功的,卜r 丌p 也因此流行起来,在i n t e r n e t 流量中很 大部分是h r r r p 流量。但众所周知的,h 删1 0 具有不少的缺陷。 h r r p 1 0 是由h 删0 9 发展而来。有关h 丁i p 1 10 的讨论和试验很多, 但一直没有形成一个正式的规范。i e t f 的h 订p 工作组( h r r pw o r k i n g g r o u p h 1 t r p w g ) 发布了一份文档( r f c l 9 4 5 ) 中描述的是h 1 t r p ,1 o “公 共的用法”。大约4 年后( 1 9 9 9 年) ,h 订p w g 发布了一个改进了的协议,就 是h 兀r 1 1 。 下面我们将讨论h t r p 1 0 和h 1 t r p 1 1 的主要区别,这样有助于我们理解 h 删1 1 改进的地方和其基本原理。 伸展性( e x t e n s i b i l i t y ) 在h 兀 p 1 1 的讨论过程中,已经有了许多实施的方案,这就产生了兼容性 的问题,在以后正式的标准出来以前,也会有同样的问题。而h ,丌p 说明了如 果一个实现收到一个它不认识h 订p 头,它就忽略它。这就允许了不同更改 卜r 兀p 的版本号,就可以支持扩展。 缓存( c a c h i n g ) h 兀 p 1 0 :源服务器在响应中使用e x p i r e s 来标识一个客户缓存的有效期; 客户可以通过“条件g e t ”向源服务器请求验证目标

温馨提示

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

评论

0/150

提交评论