




已阅读5页,还剩89页未读, 继续免费阅读
(计算机软件与理论专业论文)异步单进程事件驱动代理服务器.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 “异步单进程事件驱动代理服务器”是信息产业部“电子发展基金”支持 的“网络多功能服务器”项目下的一个子课题。当前i n t e r n e t 在迅猛发展,但 网络带宽的增加与信息量和使用群体的增长却并不同步,从而使w e b 代理服务 器成为缓解这一矛盾的一种有效途径。 在本论文中,首先讨论和总结了w e b 代理服务器的基本理论、工作原理和 缓存技术,研究了与缓存一致性相关的h t r p 机制。通过对五种网络服务器内 部架构和多种事件分派机制的分析和比较,最后提出:单进程事件驱动( 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 ) + 实时信号( r t - s i g n a l ) 的结构适合用于实现 高性能的w e b 代理服务器。同时分析并给出了单进程并发服务器中关键的网络 i o 实现技术。在对w e b 代理服务器及其技术研究的基础上设计了一个基于单 进程事件驱动的w e b 代理服务器,本服务器采用了实时信号机制,所有的网络 i o 都采用了非阻塞方式:服务器内部实现了非阻塞的域名解析机制,并实现域 名,地址缓存;使用了常驻内存的元数据缓存并通过h a s h 表管理,加快了缓存的 查询速度;对尺寸小于8 k 的对象采用大文件内存映射机制提高访问速度:对保 存在磁盘上的缓存文件采用特殊的映射机制,减少目录深度弗使文件分布均匀: 本服务器实现了l r u - t h r e s h o l d 缓存替换算法,并辅以随负载变化而动态调整 的缓存维护机制:最后,还实现了基本的预读功能。 通过对本代理服务器的功能和性能测试,表明服务器达到了设计目标并具 有较高的性能。 关键词: w e b 代理,单进程事件驱动,实时信号,非阻塞i o ,代理缓存 一一 a b s t r a c t a s y n c h r o n o u ss i n g l e p r o c e s se v e n td r i v e nw e b p r o x y i so n eo f s u b 。s u b j e c t so f “m u l t i p l ef u n c t i o ns e r v e r “,an a t i o n a lp r o j e c ts u p p o r t e db y “e l e c t r i c d e v e l o p m e n tf u n d s ”o fm i i ( m i n i s t r yo 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 m e ti sg 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 h d o e s n tk e e pu pw i t ht h ei n c r e a s eo fi n f o r m a t i o n 乜a f f i ca n de n du s e r s a l l t h e s em a k ei ta ne f f e c t i v es o l u t i o nt 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 e n e t w o r k l a t e n c y a n dt r a f f i c t h i s t h e s i s , f i r s t l d 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 n d p l e a n dc a c h e t e c h n o l o g i e s ,t h e n t h eh 耵p p r o t o c o l s u p p o r t i n gc a c h ec o h e r e n c ei se m p h a s i s e da sw e l l t h r o u g ha n a l y s i n ga n d c o m p a r i n g d i f f e r e n tn e t w o r ks e r v e ra r c h i t e c t u r e sa n ds e v e r a l e v e n t - d i s p a t c h m e c h a n i s m s ,i ti s r e a l 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 ep l u sr t - s i g n a li sa d a p tt oi m p l e m e n te f f i c i e n tw e b p r o x y a tt h e s a m et i m e , t h es o l u t i o no ft h ec r i t i c a ln e t w o r ki oi s s u e sr e l a t e dt os p e di s a n a l y s e da n df i g u r e do u t b a s e do nt h ep r e v i o u sr e s e a r c ho nw e bp r o x ma s p e db a s e d p r o x y i sd e s i g n e d t h i ss e r v e r a d o p t s r e a lt i m e s i g n a lm e c h a n i s m , a l ln e t w o r ki o si nt h i ss e r v e rw o r ku n d e rt h e n o n - b l o c k i n gm o d e t h e n o n - b l o c k i n gd o m a i nn a r n er e s o l u t i o n r o u t i n ei s i m p l e m e n t e di n s i d e t h e s e r v e rw i t ht h er e s u l t sc a c h e d t os p e e du pc a c h eq u e r y , t h ep r o x yk e e p s c a c h e m e t a - d a t ai nm e m o r yt h a ti sm a n a g e dv i ah a s ht a b l e 5b i gm m a pf i l e s a r ea l l o c a t e dt o i m p r o v e t h ea c c e s so ft h ec a c h e do b j e c t sl i t t e rt h a n 8 k s p e c i a l m a p p i n g f u n c t i o ni sa l s ou s e dt om a pm e t a - d a t at o t h e c a c h e do b j e c t si nd i s k , a i m i n g a td e c r e a s i n gd f f e c t o r y d e p t h a n d o f f e r i n g ab a l a n c ed i s t r i b u t i o n t h i s s e r v e ru s e st h el r u t h r e s h o l dc a c h e r e p l a c e m e n tm g o r t h m , ad y n a m i c c a c h e m a i n t e n a n c em e c h a n i s mb a s e do nt h ef l u c t u a t i o no fr e q u e s to v e r l o a di su s e d t o o f i n a l l y ,a b a s i c p r e f e t c h i n g r o u t i n ei si m p l e m e n t di nt h i sw e b p r o x y t h et e s td a t ap r o v e dt h a tt h e d e s i g ng o a li s r e a c h e da n dt h e p r o x y a c h i e v e s h 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 ,r t - s i g n a l ,n o n - b l o c k i n gi o ,p r o x y c a c h e 一 独创性声明 本人声明所里交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名: 重霉日期:9 f 年工月2 7 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论 文的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:鸯搴 导师签名;i 垒整 日期:1 十年2 月哆日 异步单进程事件驱动代理服务器 1 i 背景 第一章引言 随着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 亿 ( w w w n e t v a u e y 0 m 统计) ,2 0 0 3 年1 月d n s 中的主机数达到1 7 1 ,6 3 8 , 2 9 7 台 ( 班垃盟亟盗喀统计) 。i n t e m e t 指数级的增长导致了沉重的网络负载和网络服务 响应时间的迟缓。 据统计数据显示,i n t e m e t 中数据流量的增长的首要原因是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 年左右,i n e r n e t 中的流量主要是源于 f t p 请求占4 4 ,而现在,在大多数地方的网络流量中有7 5 8 0 是源于 h t i p 。 可以认为w w w 是一个提供 共享数据访问的最大的分布式的 信息系统。图1 - 1 显示了中国大 陆区2 0 0 1 至2 0 0 2 年w w w 静态 网页的数量及其交化 1 1 1 2 1 。可以 看出,静态网页在总页面数中所 占的比例是很高的,静态网页数 与动态网页数之比也由4 :3 增至 2 0 0 12 0 0 2 图1 - 1 静态网页数量( 大陆区) 2 :1 ,说明静态网页所占的比例越来越高了。现在的w e b 用户在i n t e r n e t 上遇到 的两个最大的问题是网络拥塞和服务器过载。至少在现在来说w w w 的快速增 长归功于它的使用很廉价,并且使用w w w 服务来获取信息比其它的方式更方 便、快捷。w w w 拥有的资料吸引了广泛的兴趣群体,如有:新闻,教育,科 学研究,体育,娱乐,证券,旅游,商业,天气,地图等等。 虽然,i n t e r n e t 的主干容量每年增长速度为6 0 ,但在可预见的未来内, 随着越来越多的信息服务加入到w e b 上来,对带宽的需求仍超过这一速度。如 静杏网页数量百万v 异步单进程事件驱动代理服务器 果不采取一些解决的办法,由于这种增长速度带来的问题使w w w 变得更拥塞 它的吸引力将会大大减小甚至消失。 从9 0 年代初期研究人员就在研 究如何提高w e b 的性能。在客户附 近缓存访问率高的对象是缓解w e b 服务瓶颈、减少i n t e r n e t 流量和提 高w w w 扩展性的一种有效的途 径。在一个集团中,通常在防火墙 内使用代理( p r o x y ) 服务器来作为 访问i n t e r n e t 的中转服务器,因此 产生了用代理服务器来缓存数据的 想法。处于安全的考虑和资源的限 制,很多公司在他们的防火墙内( 或 同一机器上) 使用一种叫“代理”的h r 】t 服务器。代理服务器通常接收防火 墙内的客户请求再把它们中转到外部的远程服务器,并把响应返回给客户( 如 图1 2 所示) 。既然,防火墙内部的所有用户通常都要共享这些代理服务器, 很自然地,使用代理服务器来缓存数据是有效的。而使用这些代理服务器的用 户们,由于工作或兴趣的原因,会更有机会访问一些同样类别的网页。这样, 在代理服务器中,先前用户所访问过并缓存下的页面在不长的时间内很可能被 再次访问。因此,在代理服务器上的w e b 缓存不但可以节约网络带宽,而且可 以减少客户访问的延迟时间。 w e b 缓存是不是有效的呢? 即是说,我们缓存下来的网页是不是会被再次 的访问? 因此能减少多大的网络流量? 研究表明,w e b 代理服务器的命中率( 缓 存网页被再次访问的比例) 为2 0 3 0 左右,这样减少了的网络流量是可观 的。而同时用户也可以感觉到随之带来的响应时间的变短。 1 2w e b 代理服务器的作用 w e b 代理服务器提供了一个有效访问i n t e m e t 的途径,它的实施有如下的 优点: 减少网络带宽的消耗,从而减少网络流量和减轻网络拥塞。 2 异步单进襁事件驱动代理服务器 减少了访闻延遮,遮是由予两方面的原因:一是,频繁访闯的网萄由附 近的w e b 代理服务器取回,而不是远程的服务器,这样传输延迟降低了;再者, 由予瘸络流嚣躲减少和远程服务嚣负载的洚低,使凝固没缓存的髑页鹩时闻也 相对的减少了。 洚低远程w e b 服努器静工稼负载,由于在嗣络上缓存数据豹存在,减少 了崴接访问w e b 服务器的次数。 璜热霹嗣镶。蘸予瓣络原因或者速程暇务器馥障导致远程敝务豹不w 雳, 但此时客户可以从w e b 代理服务嚣处取回一份缓存。这样,加强了w e b 服务的 毽稳住。 安全性的增强。通过w e b 代理服务可以进行用户访问控制、限制用户的 谤瀚莲嚣、内客:遭滤等; 提供用私有糟访问i n t e r n e t 的方法。有限的砰资源的不足,已经突出。 镬惩代理黢务器馕一令集黧,只要绷鸯一令乡 郝霉辘霉摆窍霹i n t e r n e t 豹访滔。 提供了一种管理手段。在代理服务器上可以对用户进行管理,还可实现 滚爨诗费餐功戆。 w e b 缓存还带来一个副作用,那就是给我们提供了一个对个组织的使 建模式进纾磅究的枧会。 然而,我们也肴到,w e b 代理服务器的使用也商一些缺点: 一令主要豹缺点是惠- t w e b 代理照务器上缺乏适当戆缓莓爨薪撬利导致 客户可能看到过期的网页( w e b 服务器上的相应网灏已经有了变化) 。 由卡缓存表命中导致代理黢务凝终熬处理带来瓣谤阉延迟戆增挺。 单一的代瑷服务嚣带来单点故障。 代理服务器鲍缓存的使用减少了远瀑静源服务器的“点毒攀”,这榉使 拥商这些服务器的缀织的统计信息减少,他们可能因此希凝不要缓存他们的网 页。 所以,围绕w 曲代理服务器的研究就是怎样更大地发挥它的优势。本文将对 w e b 代理服务器的实旌中的关键要素进行讨论,并殷设计稷实瑗了一个w e b 代理 服务器。 一3 , 异步单进程攀件驱动代理服务器 1 3 论文内容缀织 本文扶w e b 代理派务辫豹概念入手,分帮亍了w e b 代瑾搬务器鹣基本藤瑾、 相关的网络协议及其和w e b 代理服务器的关系,接辫讨论了w e b 代理服务器中 静缓存一致往滴蘧凝其解决静技零。文书还分耩了簸务器设计中豹关键离 题一一服务器内部绪构及不同结构的比较_ 茅口选择。在以上研究的基着:i i 上,设计 并安凝了一个基于s p e d + r t - s i g n a l 懿w e b 戎瑾鞭务器。蠢续章节麓主要建容 安排如下: 第二章理论基懿 主要讲述了w e b 代理服务器的概念和綦本原理、典型的几种实施方案,然 嚣分爨了a 耱与w e b 袋毽驻务器攘关靛霹终痰嗣层终议豹变要害誓煮及其与w e b 代璞服务器的关系。 寨三章w e b 代理聚务器缓莓技寒 首先讨论了w e b 对象的可缓存性,接赣分析了两种缓襻一致性模型并总结 了秘废豹缓凑一致瞧维护瓠镪。最越,碜 窕了与缓嚣一致瞧鞠w e b 找理受务器 性能相关的缓存替换技术和预读搜术。 第四章代理照务嚣麓缀技术碜 究 研究了w e b 代瑷服务器实现中的关键技术问题,分析比较了多种服务器结 梅耧多种雳寒处理嬲终i o 的事传凳派极溅,著农北基础上提出了;s p e d + r t - s i g n a l 构架适合用于实现高性能裔鲁w e b 代理服务器。还分析讨论了s p e d 服 务嚣中的网络非阻塞l 超技术及其实理。最艨探讨了在缓存模块中会使用到的走 存映射技术和r n m a p 机制。 第五章异步代耀服务器的设计与实瑰 主要讲述了一个基于s p e d + r t - s i g n a l 的w e b 代理服务器的设计,各个模 块的设计和架构。卷重讲述丁w e b 代理服务器实现中的关键技术、相关算法和 主要流程等。 籀六章功能及性能溯试 从功能和性能两方蓓对w e b 代理服务器进行了测试,测试结粟表疆系统实 现了设计的功能并达到较高的性能。 - 4 一 异步单进稷事件驱动代理服务器 第三章疆论基础 2 。1 w e b 代理服务器的基础理论 2 。l 。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 网络中,传统的通信过程是这样的:客户端向服务器请求数据, 霰务器襄纛该请求,将数攒转送给客户端。在弓l 入了代理暇务器黻质,遮过 程变成了这样:客户端向服务器发起请求,该请求被送到代理服务器:代理服 务器分爨该请求,先查看鑫云缓存孛是秀蠢请求数赛,懿粱毒藏纛接传送给客 户端,如果没有就代替客户端向该服务器发出请求。服务器响应以后,代理服 务器将璃建戆数据传送绘客声溃,阂融在蠢己熬缓褰孛傈赘一份该数据豹拷炎。 这样,再有客户端请求相同的数据时,代理服务器就可必赢接将数据传送焓客 户蠛,蠢不嚣要再淘该l 虽务器发起潺求。这个过纛翔墅2 - - 1 瘊示: 习 1 j 请袋 卜 一 座签 强2 - 1 代理服务器穰墅 - 5 - 请求 卅卜一 瘟答 r l 服务器i 1 一 异步单进程事件驱动代理服务器 2 1 2 在什么地方实现缓存? w e b 缓存可以有几个不同级别缓存:从无缓存到多级缓存。当个客户请 求远方的一个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 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 ) ,“ 玎t p 加速服务器”( h n pa c c e l e r a t o r ) ,或“源 服务器代理”( s u r r o g a t eo r i g i n s e r v e r ) 。 一6 一 异步单进耩事件驱动代理服务器 4 兰种缓存方式的对比 浏览爨缓存通过将用户先翦访闯过的网页在鼹户的内存郛硬纛上缓存来减 少延迟时间。浏览稚支持缓存管理的一些必要的功能,如决定缓存的大小,最 长的保持时阅和维护缓存的一致鼓等。从用户的戏点看来,在整个网络效率上 的考虑最黧要的因索是减少延迟时间。而这个个人的目标和一个集团或网络系 统来说有悬相矛盾的,因为个人用户为了减少访问的延迟时间,可能采取预读 技术把有可能将要访闯的黼页提前下载下来,在一个集团内这样做的结采是增 加了网络溅量。 代理服务器缓存在予阏络中闻,它麓接收许多用户酌请求。所以至0 这代理 服务器的请求可能在客户之间交叉弓l 用。当一个请求在代理服务器得到满足时, 就减少网络流蠢,溺辩逛减少了请浆的延避静简和w e b 藏务器受载。因为代理 服务器要管理许多客户请求的网页,它必须考虑全局的性能。这时的缓存的管 理就范浏览器缓存的管理瑟重要。 服务器缓存和代理服努器缓存类似。不过,它接收的媳它所代表的w e b 服 务器懿请求,在翔产看来它就是爽实豹w e b 簇务器。它稍不是为簸终焉户实施 的,而是为w e b 发布者。它的最主器的目的解决一些热门站点遇到的扩展性和 王谗受载豹淹题,宅氇莛爨减夺穗络流量戆霹靛。蓠薅还有安全上翡考虑,通 过京客户就不是直接访问w e b s e f v e r ,而魑通过了一个中间服务器。 虽然程搽终系统孛毪露多静豹缓存存在,毽巍予w e b 繇凌瓣待熹,馊褥 w e b 缓存楫着和传统的( 如文件系统) 缓存系统不同的考虑。通常传统的缓存 系统孛戆缓存赘数据寿霾是豹太小( 蘩茭躐涣 。读凝一个页戆薅阙氇可谈海是 固定的( 如:是内襻访问时间,或i 0 访问时间) 。而w e b 缓存的j c 寸象的大小变 绽蒎嚣缀犬,麸足羲字繁爨l 咒字节。并基在w e b 嚣凌串,取霾个对象瓣辩 间镶往是光法预知的。在w e b 缓存系统中“弱一致性”模式也是裔用的,而这 在一个内存缓存系统中是缝不可按受豹。这些嚣裂导致了谗多在鼹绞缓袭系统 中所使用的机制不逡合在w e b 缓存中使用。 2 。l 。3 三种典鍪静w e b 代疆骚务嚣实施穷案 摄撂w e b 代理服务嚣的实际实薤,钛客户噬及w e b 服务器鲍楚度慕餐。我 们可以把它们分为三类: 7 , 异步单进程事件驱动代理服务器 1 传统的w e b 代理 传统的w e b 代理需要用户在其浏览器中进行相应的配置,使浏览器将h 几一 请求发向代理服务器。这种 工作方式是我们通常最熟 悉的,因为用户可以知道它 的存在。这种方式的优点 是:便于对用户进行管理: 不需要其它的支持手段:可 提供的服务种类多。 图2 - 2 传统w e b 代理 但它也有明显的缺点:存在单点故障,代理服务器的不可用导致网络的不 可用;需要每个用户进行配置;扩展性不好,一个代理服务器要处理所有的请 求。 2 反向代理 当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代 理服务的方式称为反向代理服务。 反向代理主要用于w e b 服务器加速和通过它加强w e b 服务器的安全,为 一个或几个本地网站作缓存,或者让外部用户访问内部网络的服务器。反向代 理还是支持w e b 主机田( 将多个虚拟域名映射到一个物理网站) 的有用的机制, 8 许多i n t e m e t 服务 提供商( i s p ) 越来 越多的提供这种服 务。反向代理的工 作方式也就是前面 所讲的“服务器缓 存”,这里就不再重 复讨论。 彝步单进程事件驱动代理服务器 3 。邋阴代毽 透明代理不嚣客户竣作任何代理设置,当数摄报文( 擐撂t o p 蠛墨,虫鼹8 0 ) 经过路由器时,被燕定向至n 代理服务器的代理端口( 如8 0 8 0 ) ,然厩由本地代理 服务器向外请求所攥数据然后拷贝绘客户端。 透明代理消除了一个代理服务器的最大的缺点:需要在w e b 浏览器进行配 置。在这种工作方式下可以实现不同种类的管理方式,如在多个代理服务器之 间实现负载平衡。透葫代理的强大的地方也是它的薄弱的地方:玄干涉了端到 端的通信傻又不维护连接端点的憔定。当废用程序的请求在连续的请求中或一 个邂辑的请求涉及多个目标对象时要求是菊状态的,这时就遇到了问题。掰外, 由予要在所有的外出的i n t e r r t e t 流爨中要效滤出h h p 请求增加了额钋的延迟。 实现透明代理酌方法;端口重定囱( 翔在l i n u x 系统下用i p c h a i n s ) ,基于 路由( 路由器通过慕于策略的路由提供 r r t p 请求的重定向) ,基于交换机( 利 用l 4 交换税终负载平 衡) 。 透稠代理静谯赢是羁 显的:它实现、管理简单 一零用在客户壤竣嚣测凳 器:中心控制一用户不能 使测菱器绕嚣伐毽。 但它宥它的不足,除 了土瑟所谈戆燕,还赛: 圉2 q 透明黼b 健瑾 健、杖性不好一依赖于稳定的路由( 寓户和源服务器间的路由,可能绕过代耀) ; 霜户控稍一弱夺7 震户缒燕铡投;对测燕器懿缀簸槛一震要窖声鹁淤览嚣在 肼请求头( h o s t 域) 中提供原服务器的域名。 2 。i 。4 蕻垂的w e b 代理疆务器工僚流程 一个w e b 我璨鼹务嚣的基零工捧魏黧2 - 5 ,我霞亲善藿这令过程及冀中夔 考虑: 当震户测茭w e b 夏霆瓣,震户豹请求塞至l 照务器。不繁代瑾鞭务器怎么楚 理,用户看到的是返回给他的w e b 页面。和用户打交道的地方在怒始和终此的 9 , 异步单进程事件驱动代理服务器 地方:u r l 请求进入系统:系统将炎面做为响应。 生能的衡量一般怒以用户的 观点来看的,当然在现实中墩提出了一些其宦的标礁。 ,爝户静请求作 为 暇,命令进入 代理服务器。这时, 在用户看来玄是单 独静一个枝理服务 器,但这个服务器 虿稳是分毒筑豹。 这时,流程阁可能 表达魏是,避来静 蚕2 - 5 鼗理黢务器基零浚程 请求可能面对一定数羼的服务器系统,每个操作可能在不同的机器上完成。 警接牧弱一令谚求霹,第一步攥佟是鬟薮谤求戆嚣括对象是否汪经保存在 缓存中。这时可以是一个简单的查询缓冲中的内容,然后返回一个布尔值。同 样豹,懿粟缓存载套诲过程楚分枣式熬裁渗及至l 一系臻复杂瓣攥终过程了。 如果目标对象在缓存中存在,接下来做的就是梭查这个缓存的备份是荫是 “蠢效豹”( v a l i d ) 。这里戆“奏效”瓣定义,在不阏豹我骥羧务器蜜藏方寨孛 可能是不同的。就是通过它的定义,代理服务器的设计者可以控制一个一致性 模式窝能够缓存的强撂对象熬薄弱。 我们来瓣看一致性的闯题。代爨服务器缓存的最弱的一致性模型在这个时 候,把所有数缓存懿对象都认为是会法鲍。网襻的遂理,最强弱一致性模爨慈 是回答“否”,每个请求的融标总要麓新向源服务器取回。襁这两种极端的情况 之闻就存在辫一致燃模型考纛的空阀了,霹以通过缓存对象保存的慰问,鼓者 从源服务器敬回的对象的生存时间,也可能用其它搬多的选择来判断。最精将 有效螅对象赢接返回给请求的耀户。 一个对象是否魑“可缓存的”( c a c h e a b l e ) ,也在这个阶段考虑的。一个w e b 对象太大( 如,很长的视频瀛) ,也可能在每次请求之间会改变( 如是c 露的走 容) ,那么认为它是“不可缓存的”( u n c a c h e a b e ) 。 如果当发现缓存的对象是“无效的”( i n v a l i d ) 缓者在缓存中没找至q 这个对 象时,系统簸会觚潦服务器蓬新取阐数据。当数搽下载下策后,就弱临将宅缓 存的任务。这个阶段的工作就涉及到了缓存替换( r e p l a c e m e n t ) 策略的问题: 一1 0 异步单进程事件驱动代理服务器 当缓存没有足够静象闻来存储下载下来的数据对,它为了腾出空闯就必须从缓 存中收回一贱对象。 强牧哪擅对象豹策略楚童设计者来决定的。述有,决瘫什么情况时缓存是 “满的”也是由设计人员来决定的,不是定要根据空间的够与不蟛来决定是 否癸逶行替换工捧,遣霹馘使孺缓存翁对象的数量佟兔标礁,这都不是唯豹。 代理服务器从源服务器取回的对象不只限于用户的请求,它可以不需甏有 雳户请求裁裟挺w e b 对象敬霜,邃个技拳# q 骰“羧读取”( p r e f e c h i n g ) 。在 个系统中是褥实施穰有用户请求来到前就把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 2 w 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 础。 u r i 是一个字褥事,建窀来檬谖w e b 土豹炎潆:文整,溪像,下载文佟, 服务,电子邮箱和其它的资源。这样通过一个资源的u r i ,就可以滗位这个资 源,逡一步毽瘸宅。 这里有三个概念;u r i ,u r l ,u r n 。遮三个概念是什么关系? 一令l m m 霹叛进一步懿分类蔑定佼罄窝鬈字。“统一资源定谴餐” ( u n i f o r mr e s o u r c el o c a t o r - u r l ) 是u r i 的一个子集,它通过资源的酋翳的 访翅橇裁( 辩,它艨在翡鹅终霞鬟 来标滚资源。“统一瓷澡名”( u n i f o r m r e s o u r c en a m e 班u q ) 也熙u r i 的子集,它是一个在全局范围内唯一和永久 蛇撂谖( 即便这令炎源已苓枣在或誉嚣翅) 。u r n _ 耱u r l 熬琴弱在于,宅戆主 要目的是让资源有一个持续稳定的标识,它只是一个名字,没有指出到什么地 方去褒找数撂。它们三誊熬关系,如嚣鼹录: f p : g o p h e r : h t p : u r z # 黼秘u r l ,测帮u 戳 我们这爨重点讨论u r l ,代理服务器必须通过讼才可以定位请求响应的资 源。下嚣爱豢,u r 毛夔耩谈擦式; 1 2 , 异步单进程事件驱动代理服务器 u r l 强允许用七往a s c i i 文本来表拳u r l 。除了字母数字字符,u r l 还 允许出现的字符是:美圆符( $ ) 、横线( ) 、下划线( 一) 、圆点( ) 、加号( + ) 、 惑戳号( ! ) 、星号 回应头 豳应内察 w e b 代理服务爨对h h p 滂崽孵处理燕要毂楚孵据请滚和匿波当中敬请求 行( 或状态行) 和标题域,从而决定怎样替发起请求的客户转发请求、转发给 谁等。w e b 代理服务器在决定是否溪将一个网页在本地缓尝,以及霹以缳熬多 久,采取怎样替换策略等等都和珊消息的标藤域有关。 受篇幅所限,典体 ”r p 协议的内容就不在这里一一则举,可参见鸯荚的 r f c 文档。 1 5 , 异步单进程事件驱动代理服务瓣 2 闻胃1 0 秘唰1 1 静主疆区剐 h t t p 1 0 协议怒很成功瓣,脚也因此流行越来,谯i n t e m e t 流量孛很 大部分是h t t p 流爨。但众所周知的,哪1 0 具裔不少的缺陷。 h t r p 1 0 是由h t r p 0 9 发展褥来。有关h t r p i 。0 的讨论和试验很多, 但一赢没有形成一个正式的规范。i e t f 的脚工作组( 姗w o r k i n g g r o u p - h t t p - - w g ) 发布了一份文档( r f c l 9 4 5 ) 中描述的是h t t p i i 0 “公 共的辩l 法”。大约4 年后( 1 9 9 9 年) ,h t r p - - w g 发布了一个改进了的协议,就 是醚1 1 甲,1 1 。 下面我霄j 将讨论m - i ,纯10 和h t r p 1 1 的主要嚣剐,遮样有劲予我们壤解 肼1 1 改进的地方和其基本原理。 律袋缝( e x t e n s i b i l i t y ) 在h 1 1 甲1 1 的讨论过稷中,已经有了许多实施的方案,这就产生了兼容性 静闷怒,在黻看正式静标准斑来戳裁,氇会商同样静阉逶。黼h 弱潆说葫了魏 果一个实现收到一个它不认识 r r r p 头,宦就忽略它。这就允许了不用熨改 h t t p 静舨本号,裁霹以支掩扩震。 缓存( c a c h i n g ) h t t p 1 0 :溪黻务器在响应串毽翔e x p i r e s 来搽滚一个客户缓襻豹有效麓; 客户可以通过“条件g e t ”向源服务器请求滁证目标有无燮化;而客户可以用 请求头孛敕“p r a g m a :n o - - c a c h e ”采捂定不要扶缓存孛获敬嚣蠡。 h 兀1 p ,1 1 ;保留了h r i w l 0 的支持,澄清了其不明确之处,并进行了扩 震。在响应孛傻惩“e t a g :e n t r yt a g ”来耨谖一令实髂,湾狳了i f - m o d i f i e d - s i n c e 会由于主机问时间不同步造成的问题;增加了一些新的条件请求头,有 i f - n o n e - m a t c h ,i f - u n m o d i f i e d - s i n c e 秘i f - m a t c h :增热了“c a c h e - c o n t r o l ”, 允许在请求和响应时显示的指示缓存控制,为避免时间不教的问豚,使用了 “m a x - a g e ”掭识,溺“p r i v a t e ”毅“n o - s t o r e ”进褥服务黪馥客户指示苓让存 储响应,用“n o t a n s f o r m ”来组织代理对进彳亍格式的转换( 如图像) ;使用“v a 胛” 响应头来更好熬支持代理缓存对晌斑戆标识。 优化带宽( b a n d w i d t h o p t i m i z a 廿o n ) h t r p 1 0 对带宽的浪赞袭瑷在服务器簧把整个响应发绘客户,即使宅只嚣 要部分信息,还表现在如发送的消息太大( 如,p o s t 和默_ i t 请求所带的蜜体 很长时) ,要在整个游息发送完了,才返回镄误通知。 1 6 异步单进程事件驱动代理服务器 “1 。1 增加了“范围请求”( r a n g er e q u e s t ) 支持客户只嚣要部分信息 的情况,而服务器以2 0 6 ( p a r t i a lc o n t e n t ) 状态码表明响应是对象的一部分;对 于请求静请求体大的情形,客户先把请求头发给服务器,在收到“1 0 0 ( c o n t i n u e ) ” 状态露熬噙应瓣霉发送请求体;节约带宽豹一个有效鹣方法是数据基缩, h v r p 1 0 支持数据压缩,但没鸯提供一个压缨方法的按蠢极铡,誉能区分蛾至i 端和跳到跳的压缩,h 州1 1 支持h n p 1 0 支持的内容编码 ( c o n t e n t - e n c o d i n g ,是用于端到端) ,还支持传输编码( t r a n s f e r - e n c o d i n g , 用于懿翻虢静售惑编磷) ,蕊客产哥焉饶e c e p 壤n c o d 堍“和“琵”买袭弱接受 舒么样的编鹚。 网络连接管理( n e t w o r kc o n n e d t o nm a n a g e r m e n t ) h r i p 怒基于t l c p 来传输的,开始的设计是每个请求建鼗一个新的连接, 这赣需辩至少一个来回的时闻和一些额外鹩数据报,而t c p 豹“幔扇动”更使 这令过程变长。为改变这静薅形,h t 耍1 1 采蓬了“持久连接”( p e r s i t e n t c o n n e c t i o n ) 和农一个永久连接上请求的“流水线操作”( p i p e l i n i n g ) 。 首先h i - 】t ,1 1 引入了“跳到跳”头的概念:消息头只在指定的连接上起作 用( 而不是熬个的路径) ,为支持这个概念,引入了“连接”( c o n n e c t i o n ) 域。 “持久连接”静支持:有一熬糯纯10 静实施逶遘 “c o n n n e c t i o n :k e e p - a l i v e ”域来支持持久连接,毽h t r p 1 。l 缺省连接菇持久 连接,传输结束后可以断歼。因而一些应用因为扩艘原因或资源的原因不愿保 持持久连接,可以通过“c o n n e c t i o n :c l o s e ”来通知接收者不再复用此连接。 “流永线操作”韵支持:客户在发出一个请求精不稍等弼响应的翻来就可 以发送其它的请求,它避免了足个来瓤时耀的等待,提寒了t c p 豹翻焉率。 消息的传输( m e s s a g e t r a n s m i s s i o n ) 对予某些服务器无法预知消息长度的情况( 如脊c 昏产生的响应) ,通过设 置传输编码为“分块”( c h u n k e d ) 来完成,就不用服务器要将整个响应缓存后 秀发。褥对器要蘩令溺惠产生完才熬骰整理鹃情况( 翔徽c o n t e n t - - m d 5 ) , h 鞭科1 1 用“尾部”( t a i l e r ) 头来实现,在分块驰撼息驰最最一块要雹含一个 “尾部”头。 i n t e m e t 地址僳留( i n t e r n e ta d d r e s sr e s e r v a t i o n ) , 由予i p 瓷源豹紧缺, 玎背一1 运行簸理a 令域名对应一个i p 酌情形,通 过添热一个h o s t 头采凝会u r l 据定要诱阙的毁终炎源。 一1 7 一 异步单进程事件驱动代理服务器 安全( s e c u r i t y ) ,完整性( i n t e g r i t y ) 和认证( a u t h e n f i c a f i o n ) 帅1 10 客户认证的支持是通过“基本认证”( b a s i ca u t h e n t i c a t i o n ) 。这 种方式中用户名和翻令的传输是翻交的,不熊防止“窃听”。 h t t p 1 1 采用丁“摘要访问
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 青岛版(六三制)数学四年级上册第六、七单元综合素质达标试卷(含解析)
- 2025年公需科考试试题(含答案)
- 2025年秋季新学期第一次班主任工作培训会校长讲话:凝心抓班级管理携手促育人实效
- 2025年高校大学生群体常见诈骗手法测试题(附答案)
- 2025年高考政治时政热点题及答案
- 长沙民政学院试题及答案
- 香港雅思考试题库及答案
- 宇宙英语试题及答案
- 宗教与教育领域-洞察及研究
- 中介合作机构管理办法
- 房东租房合同免责协议书
- 公路声屏障安装施工合同
- T/CECS 10400-2024固废基胶凝材料
- 劳动纪律管理培训
- 《文字之旅》教学课件-2024-2025学年苏少版(2024)初中美术七年级上册
- 《胰高糖素样肽-1受体激动剂联合胰岛素治疗2型糖尿病专家共识(2025版)》解读课件
- 精酿啤酒介绍
- 2023年护理质控工作总结
- 大学生创新创业基础(大赛案例版)课件 第12章 大学生创新创业大赛
- GB/T 1040.1-2025塑料拉伸性能的测定第1部分:总则
- 河北版初中《信息技术》第二册全册
评论
0/150
提交评论