(计算机应用技术专业论文)代理缓存和负载均衡技术在在线考试系统中的应用研究.pdf_第1页
(计算机应用技术专业论文)代理缓存和负载均衡技术在在线考试系统中的应用研究.pdf_第2页
(计算机应用技术专业论文)代理缓存和负载均衡技术在在线考试系统中的应用研究.pdf_第3页
(计算机应用技术专业论文)代理缓存和负载均衡技术在在线考试系统中的应用研究.pdf_第4页
(计算机应用技术专业论文)代理缓存和负载均衡技术在在线考试系统中的应用研究.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(计算机应用技术专业论文)代理缓存和负载均衡技术在在线考试系统中的应用研究.pdf.pdf 免费下载

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

文档简介

y5 8 6 1 ; ? 代理缓存和负载均衡技术在在线考试系统中的应用研究 代理缓存和负载均衡技术在在线考试系统中的 应用研究 摘要 随着w e b 技术在计算机网络中的广泛使用, 计算机在教学中的应用 范围也越来越广。 为适应当前高等教育的新型教育模式, 我们开发了应 用于校园网和远程教育的在线考试系统. 该系统有力地减轻了教师的工 作负担并提高了工作效率, 为加快教学考核手段的现代化提供了切实可 行的依据。 论文介绍了在线考试系统相对于传统考试所具有的优势,给出了在 线考试系统的总体设计和部分模块实现过程 系统在设计时考虑到了可 以 应付不同规模的考试及远程考试 为便于管理 该系统继承了传统意 义上的考试中心和考点的概念, 每次考完后所有考点的数据最终汇总到 中心,保证了数据的统一管理、长期保存和数据的安全性。 论文对h t t p 协议中和代理缓存及负载均衡密切相关的部分进行了 详细的研究分析, 并在分析了该考试系统的特点以及代理缓存和负载均 衡概念的基础上, 针对考点的分散和考生人数的庞大, 设计了一种代理 缓存和负载均衡系统, 并对该系统中的代理缓存和负载均衡所涉及到的 一些关键问题进行了研究和分析, 在代理缓存设计中, 对客户请求的处 理采用多线程方式, 并对缓存的结构进行了改进 在负载均衡的设计中, 分析了各负载均衡算法的优缺点, 考虑到考试系统的特点, 提出了一种 结合处理能力均衡和最少连接数均衡两种算法的自 适应负载均衡算法, 同时对该算法的性能进行了测试。 关健字:在线考试系统, 超文本传愉协议, 代理缓存,负载均衡 鑫 嵘护户、 、 践 几岁 店 一 第 t 页 代理缓存和负 载均衡技术在在线考试系统中的应用研究 abs t ract wi t h t h e we b t e c h n o l o g y u s i n g in t h e c o m p u t e r n e t w o r k e x t e n s i v e l y , c o m p u t e r i s u s e d m o r e w i d e l y i n e d u c a t i o n . i n o r d e r t o a c c o m m o d a t e t h e n e w t y p e o f e d u c a t i o n p a tt e r n i n h i g h e r e d u c a t i o n , a n e w o n - l i n e t e s t i n g s y s t e m i s d e v e l o p e d w h i c h i s a p p l i e d i n c a m p u s n e t w o r k a n d r e m o t e e d u c a t i o n . t h i s s y s t e m a l l e v i a t e s t h e l o a d o f t e a c h e r s a n d i m p r o v e s t h e i r w o r k e ff i c i e n c y , s i m u l t a n e o u s l y , i t p r o v i d e s a t a n g i b l e w a y t o s p e e d t h e m o d e r n i z a t i o n o f t e a c h i n g e x a m i n a t i o n . a g e n e r a l d e s i g n a n d r e a l iz a t i o n o f p a rt m o d u l e s o n o n - l i n e t e s t i n g s y s t e m h a v e b e e n i n tr o d u c e d i n t h i s p a p e r . c o m p a r e d w i t h tr a d i t i o n a l t e s t i n g s y s t e m , t h e o n - li n e t e s t i n g s y s t e m h a s m o r e p r e d o m i n a n c e . t h i s s y s t e m c a n c o p e w i t h a l l s c a l e s o f t e s t a n d r e m o t e t e s t , e n s u r i n g t h e d a t a s s e c u r i t y a n d l o n g t i m e p r e s e r v a t i o n . i n t h i s p a p e r , h t t p p r o t o c o l i s u n d e r r e s e a r c h a n d a n a l y s i s i n d e t a i l , e s p e c i a l l y t h e p a rt w h i c h i s c o n c e rne d w it h p r o x y c a c h e a n d l o a d - b a l a n c i n g . u n d e r a n a l y s i s o f t h e s p e c i a l i t y o f t h e o n - l i n e t e s t i n g s y s t e m a n d t h e c o n c e p t i o n o f p r o x y c a c h e a n d l o a d - b a l a n c i n g , a k i n d o f p r o x y c a c h e a n d l o a d - b a l a n c i n g s y s t e m i s p r o p o s e d a im i n g a t d e a l i n g w i t h a l a r g e n u m b e r o f e x a m i n e e s a n d d e c e n tr a l i z a t i o n o f e x a m l o c u s , a t t h e s a m e t i m e , s o m e k e y s u b j e c t s o n p r o x y c a c h e a n d l o a d - b a l a n c i n g a r e u n d e r r e s e a r c h a n d a n a l y s i s i n t h e p r o x y c a c h e d e s i g n , m u l t i - t h r e a d s t r u c t u r e i s a p p l i e d t o d i s p o s e c l i e n t s r e q u e s t a n d t h e c a c h e s t r u c t u r e i s i m p r o v e d . i n t h e l o a d - b a l a n c i n g d e s i g n , a f t e r a n a l y z in g t h e f a u l t s a n d m e r i t s o f a l l s o r t s o f l o a d - b a l a n c i n g a l g o r i t h m s , c o n s i d e r i n g t h e s p e c i a l it y o f t h e o n - l i n e t e s t i n g s y s t e m , a d y n a m i c l o a d - b a l a n c i n g a l g o r i t h m i s p r o p o s e d . o n t h e o t h e r h a n d , i t s c a p a b i l i t y t e s t i s a l s o ma d e . k e y w o r d s: o n - l i n e t e s t i n g s y s t e m, l o a d - b a l a n c i n g ht t p ,p r o x y c a c h e , 第 2 页 代理缓存和负载均衡技术在在线考试系统中的应用研究 第一章 绪论 1 . 1 引言 随着计算机技术的高速发展和个人计算机的日 渐普及, 尤其是计算 机网络中的w e b 技术的广泛应用, 使计算机在教学中的应用范围越来越 广. 校园网与现代远程教育是利用计算机网络技术来实现一种随时随地 的、 交互性强的、内容更新最快的新型教学方法.包括网上学习、网上 作业、网上答疑和网上考试等. 发展网络教育是扩大高等教学规模、 提 高教学质量、 增强办学效益的重大措施. 为适应当前高等教育的新型教 育模式, 我们开发了应用于校园网和远程教育的考试平台, 在大学课程 的教学内容日 益增多且不断更新的情况下, 旨在缓解课程的考试与考核 工作的日 益复杂与繁重。 为推动考核方法改革, 加快考核手段的现代化, 根据教学的实际需求, 我们提出了基于计算机网络的考试系统的设计方 案. 当前面对各高校大规模的扩招, 以及远程继续教育的广泛普及, 给 组织和实施网上考试带来了一些前所未有的困难。 过去很多的考试系统 多采用客户机 / 服务器 ( c / s ) 二层结构, 其特点是使用时需要对所有 计算机进行软件安装和维护, 工作量较大, 不适合于大规模的计算机在 线考试.庆幸的是随着现代 工 n t e r n e t 网络技术的日 趋成熟,客户机 / 服务器二层结构的软件正逐渐被浏览器 / 服务器 ( b/ s ) 三层结构的 软件所取代。 浏览器 / 服务器三层结构的特点是所有软件的安装维护都 在w e b 服务器和数据库服务器上完成 ,瘦客户机几乎不需要做任何维 护,因而最适合组织大规模在线、 异地考试,为我们开发大规模的网上 考试系统提供了坚实的理论和实践基础, w e b网站就是b / s 三层结构 的应用体现,其核心基础是超文本传输协议 ( h t t p ) . w e b 网站可以用超文本的方式支持多种文件格式,如文本、图表、 动画和声音等文件的相互链接嵌人, 为各种信息之间的相互沟通提供了 快捷方式, 因而为通用的考试平台的实现提供了表现基础。 虽然w e b 为 我们实现通用考试平台提供了方便, 但是单台w e b 服务器的性能要想达 到校园网内上千人的同时在线考试或异地远程考试是不现实的. 因此我 们将负载均衡 ( l o a d b a l a n c e ) 和代理缓存 ( c a c h e ) 网络技术引人了 考试系统的设计之中 负载均衡是建立在现有网络结构之上, 它提供了 一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、 加强网络数据处理能力、 提高网络的灵活性和可用性。 代理缓存是解决 第 5页 代理缓存和负载均衡技术在在线考试系统中的应用研究 网络拥挤造成的网络延迟及用户响应速度缓慢问题的新技术, 在本地局 域网内或远程服务器上增设缓存, 并在各级缓存之间引人分布式协作代 理机制, 则请求响应速度可以明显提高, 因重复访问所引起的网络传输 量及网络时延可大为降低, 从而整个网络性能将得到明显改善. 所以说 代理缓存和负载均衡为实现大规模、异地考试提供了可能. 1 . 2在线考试系统概述 目前,学校及社会上的各种考试基本上都是采用传统的考试方式, 在这种方式下,组织一次完整的考试至少要经历 5个步骤: 人工出卷、 试卷印刷、 考生考试、 人工阅卷、成绩统计。显然,随着各种考试类型 的不断增加和考试要求的不断提高,教师的工作量将越来越大;而且, 当考生数量比较大时, 对试卷印刷、考场安排、阅卷、成绩统计将是一 件十分烦琐且容易出错的事情. 可以说, 传统的考试方式已经不能适应 现代考试的需要。 随着计算机技术的发展, 计算机在各个领域的应用也 越来越广泛, 人们迫切需要利用计算机进行考试, 以避免传统考试方式 各个环节的漏洞, 减轻教师的工作负担和提高工作效率, 同时也提高考 试质量。 相 对 于 传 统 考 试 而 言 , 计 算 机 考 试 系 统 的 优 势 在 于 p if ) : 1 .保密性强 通常卷面考试从出题到印刷、 下发试卷等环节需要较长的时间, 接 触的人员相对较多,给保密带来一定的困难; 而计算机考试系统则采用 试题库方式来提供试题来源, 考前无任何成套试卷, 考试时考生考卷由 计算机随机生成, 各考生试卷不完全相同, 避免互相参看导致作弊现象 或不公平成绩等;试题库可指定专人负责管理, 从而增强保密性。 2 .客观性较强 采用卷面考试时,由于出卷、印刷等问题,一般一次考试所印试卷 套数较少, 试卷整体覆盖面有限,容易形成小范围复习或猜题等倾向, 影响了测试的客观性, 另一方面也容易形成作弊现象; 计算机考试系统 采用随机抽题组卷的方式, 试题抽取面相对较大, 并且同时生成多套试 卷, 试卷整体覆盖面大, 可基本反映考生的实际水平, 防止突击复习或 猜题、作弊得高分等现象,从而保证考试的客观准确性. 3 .迅速准确,公平公正 第 6页 代理缓存和负载均衡技术在在线考试系统中的应用 研究 对于标准化试题而言, 计算机考试系统可自 动评分, 迅速准确,无 任何人为因素, 从而避免人为误差及人情分等问题, 保证考试的公平公 正 。 4 .便于组织大规模的异地实时考试 以网络技术为支撑的现代计算机应用, 己经具备较大的规模并相当 普及, 利用计算机网络组织实施大规模异地实时在线考试已成为现代考 试中一种重要方式. 本在线考试系统具有通用性, 现在虽然只有计算机文化基础、 c语 言程序设计、 计算机硬件技术基础三门课程的试题库, 但只需简单地将 其它课程的试题库挂接在系统中, 或者通过系统的试卷生成模块将纸上 考卷转换为计算机上的无纸试卷, 即可用于该课程的考试, 如外语、 计 算机等. 系统在设计时就考虑到了可以应付不同规模的考试, 而且考试 规模的加大并不为系统的维护增加太多的负担。 本考试系统可用于多门计算机基础课程同时考试, 如计算机文化基 础、 c语言程序设计、 计算机硬件技术基础等课程可同时在线考试。为 全面考察学生掌握知识的情况, 本系统精心设计了多种题型, 这些题型 有选择题 ( 包括选择填空) 、填空题 ( 包括程序填空、 程序阅读题) 、 判 断题、主观题 ( 分问答题和编程题及wo r d . e x c e l 等操作题) 等4 种, 所有试题按题型、 科目、 知识点、 难易度、 复杂度、 分值等来归类,并 且在题库中按考试科目有序组织, 这些都有效保证了考试的内容、 形式、 要求统一而不失灵活。系统的主要目标为: 试题及考生信息分别按统一格式录人成 e x c e l 表,由系统自动 批量导人数据库中, 并可以对试题库和考生信息进行修改、 添加、 删除。 通过两级组卷( 中心组卷和考点组卷) , 做到任何两个人的考试 试卷不会完全相同. 学生考试界面的布局能方便学生答题,教师监控系统有利于教 师的监考. 实现考试数据在中心和考点之间的网络互传,能够对每次考完 后的数据进行现场备份以及快速恢复 d 考试的客观题评卷完全由计算机自动完成,主观题实行人工评 卷。 为方便教师人工评卷,开发了程序模块使教师可以通过在线方 式进行评卷,或以单机方式进行评卷。 第 ,页 代理缓存和负载均衡技术在在线考试系统中的应用研究 序模块, 开发了将传统的纸上试卷输人转换为计算机上的数字试卷的程 方便了没有试题库的科目也可以进行在线考试. 评卷结束后,考生可以在网上进行成绩查询. 1 . 3 1 . 3 . 1 w e b 代理缓存与负载均衡技术的研究现状 代理缓存 代理缓存又称为代理服务器, 一般放置在一个企业或提供接入服务 的i s p中,为许多用户提供服务。由于功能单一,因此可以提供较大的 硬盘空间供其使用,所以 其命中率较高( 当然在不同的缓存替换策略之 间会有不同) , 有研究证据表明, 命中率可以 达到 3 0 %一 5 0 %,因此代 理缓存不但减少了客户端的访问延迟, 而且降低了we b 服务器的负载, 因 为有一 些访问 是 在代 理 端发生的 2 1 代理缓存接收到一个请求时, 如果缓存中内容能满足这一请求, 那 么请求消息不会被转发, 而是直接由代理缓存返回响应。 在返回缓存的 响应时, 必须符合一些特定的条件。 有些代理缓存除了非常肤浅的修改 外,不会对请求或响应进行任何层次的改动 ( 即所谓的透明代理) ,比 如添加同它自己或接收消息的那台服务器有关的身份验证信息。 相反, 另外一些代理缓存可对请求和响应进行深层次的修改 ( 即所 谓不透明代理) 。对请求的一种典型修改是匿名,目 的是隐藏与一个代 理的客户机有关的信息。 对响应进行修改的一个例子便是媒体类型的转 换一图像从一种格式转换成另外一种格式,以减少响应数量. 目 前代理缓存系统有两种: ( 1 )被动或按需缓存 它是代理服务器用于保存远端服务器网页的机制 接从缓存中读取, 加快响应。缓存的网页一旦过期, 面返回给用户前必须从远端服务器上重新下载。 ,以便客户端能直 代理服务器在将页 2 ) 主动缓存 代理服务器观察缓存中的文件, 如果文件到期, 就会请求we b 服务 器获得最新文件。 第 8贞 代理缓存和负 载均 衡技术在在线考试系统中的应用研究 1 . 3 . 2负载均衡 现有的多种不同负载均衡技术可以满足不同的应用需求: 从负载均 衡所采用的设备对象上来分有软/ 硬件负载均衡;从应用的地理结构上 来分有本地/ 全局负载均衡;从应用的网 络层次 ( 指 o s i 参考模型) 结 构来分类有第二、 三、 四 、 七层负 载均 衡t 2 3 1 i .软/ 硬件负载均衡 软件负载均衡解决方案是指在一台或多台服务器相应的操作系统 上安装一个或多个附加软件来实现负载均衡, 如d n s l o a d b a l a n c e 等, 它的优点是基于特定环境, 配置简单, 使用灵活, 成本低廉,可以满足 一般的负载均衡需求。 硬件负载均衡解决方案是直接在服务器和外部网络间安装负载均 衡设备, 这种设备我们通常称之为负载均衡器,由于专门的设备完成专 门的任务, 独立于操作系统, 整体性能得到提高, 加上多样化的负载均 衡策略,智能化的流量管理,可达到最佳的负载均衡需求. 2 .本地/ 全局负载均衡 负载均衡从其应用的地理结构上分为本地负载均衡( l o c a l l o a d b a l a n c e ) 和全局负载均衡( g l o b a l l o a d b a l a n c e ) , 本地负载均衡是指对本 地的服务器群做负载均衡, 全局负载均衡是指对分别放置在不同的地理 位置、有不同网络结构的服务器群间作负载均衡. 本地负载均衡能有效地解决数据流量过大、网络负荷过重的问题, 并且不需花费昂贵开支购置性能卓越的服务器, 充分利用现有设备, 避 免服务器单点故障造成数据流量的损失。 其有灵活多样的均衡策略把数 据流量合理地分配给服务器群内的服务器共同负担. 即使是再给现有服 务器扩充升级, 也只是简单地增加一个新的服务器到服务器群中, 而不 需改变现有网络结构、停止现有的服务。 全局负载均衡主要用于在一个多区域拥有自己服务器的站点, 为了 使全球用户只以一个 i p地址或域名就能访问到离自己最近的服务器, 从而获得最快的访问速度, 也可用于子公司分散站点分布广的大公司通 过】 n t r a n e t ( 企业内部互联网) 来达到资源统一合理分配的目的. 3 .网络层次上的负载均衡 针对网络上负载过重的不同瓶颈所在, 从网络的不同层次入手, 我 第 9页 代理缓存和负载均衡技术在在线考试系统中的应用研究 们可以采用相应的负载均衡技术来解决现有问题。 随着带宽增加, 数据流量不断增大,网络核心部分的数据接口 将面 临瓶颈问题, 原有的单一线路将很难满足需求, 而且线路的升级又过于 昂贵甚至难以实现,这时就可以考虑采用链路聚合 ( t r i in k u i g ) 技术。 链路聚合技术 ( 第二层负载均衡) 将多条物理链路当作一条单一的 聚合逻辑链路使用, 网络数据流量由聚合逻辑链路中所有物理链路共同 承担,由此在逻辑上增大了链路的容量,使其能满足带宽增加的需求 现代负载均衡技术通常操作于网络的第四层或第七层。 第四层负载 均衡将一个 i n t e m e t 上合法注册的 i p地址映射为多个内部服务器的 i p 地址,对每次t c p 连接请求动态使用其中一个内部 i p 地址,达到负载 均衡的目的. 在第四层交换机中, 此种均衡技术得到广泛的应用, 一个 目标地址是服务器群v i p( 虚拟i p v i rt u a l i p a d d r e s s ) .连接请求的数 据包流经交换机, 交换机根据源端和目的i p地址、 t c p 或u d p 端口号 和一定的负载均衡策略,在服务器i p和v i p间进行映射,选取服务器 群中最好的服务器来处理连接请求。 第七层负载均衡控制应用层服务的内容, 提供了一种对访问流量的 高层控制方式, 适合对h ttp服务器群的应用。 第七层负载均衡技术通 过检查流经的h t - i t报头,根据报头内的信息来执行负载均衡任务。 目前负载均衡用到的主要几种算法有:轮循均衡、权重轮循均衡、 随机均衡、 权重随机均衡、 响应速度均衡、最少连接数均衡、处理能力 均衡.但它们几乎都是静态的负载均衡算法。 1 . 4本论文要解决的问题 由上面论述可知, 代理缓存和静态负载均衡已 经有了很多理论上的 研究和探索,已经得到广泛的认可, 有的正在逐步成熟, 有的则是一种 很有发展潜力的概念。 目前的代理缓存主要是对静态页面进行缓存, 由于用户的不确定性 和动态内容的频繁改变, 使得一般的代理缓存不缓存动态页面。 根据考 试系统的特点: 考生确定, 考试内容已知且不改变, 我对代理缓存的设 计做了一些改进, 使之能够永久缓存动态生成而内容不变的页面。以后 考生如再次登人该动态页面, 只要从本地局域网中的代理缓存中读取即 可, 无需通过因特网从原始服务器中读取, 节省了用户大量的响应等待 时间, 也减少了网络流量。 这种方式对访问数据频繁而又要求稳定的考 第 1 0页 代理缓存和负载均衡技术在在线考试系统中的应用研究 试非常合适, 且能够大大减少对原始服务器的用户连接数, 使原始服务 器能够接受更多的考试用户。 与静态负载均衡相比, 现在对基于w e b内容的动态负载均衡技术的 研究则显得很不够, 上面论述的各负载均衡实现技术及均衡策略应用最 为广泛,但都不能有效的实施动态负载均衡,不针对特定 we b内容, 因此不能很好地用于考试系统中. 为此,本论文参考了当前国内外的一些相关的理论和研究成果, 设 计了一个基于考试内容的动态负载均衡系统.和其他负载均衡策略相 比, 这种动态负载均衡系统的设计目的是: 使用独立的数据采集模块收 集各服务器负载参数, 通过查找合适的h m报文信息来作出负载均衡 决策, 使负载能更好及时地分配到各服务器, 这种从网络的高层加以控 制的方式避免了流量分配的不公. 负载均衡实现的过程中最关键的一个因素是均衡算法,前面介绍的 几种算法都属于静态均衡算法 ( 最少连接数均衡算法除外, 但它也不属 于真正的动态均衡算法,因为它没有考虑到服务器的性能差异) ,单独 使用的效果不能令人满意,所以考虑结合改进多种算法来实现动态均 衡. 动态负载均衡步骤通常包括: ( a ) 各个结点间负载信息收集; ( b ) 根据所收集的负载信息进行决策; ( c )实现任务在各结点之间的迁移。 基于这种思想的负载均衡首先要能够及时获得服务器负载的当前 情况. 这可以 通过独立的数据采集模块收集负载参数来实现, 然后负载 均衡策略模块根据经过它的 h t t p请求报文和从数据采集模块获取的 负载参数进行计算来动态决定使用哪台 服务器. 数据采集模块只利用分 配的通信间隙进行负载采集,这样能减少对请求客户的影响. 整个在线考试系统的主要部分采用的是基于j s p 技术的b / s 结构体 系,我们提出的这种负载均衡和代理缓存策略技术完全适合这种环境, 且具有明显的效果: 它适用于不同考试科目不同规模的考试,考试人 数可以达到千人以上,同时具有很大的灵活性,既可适用于校园网内, 也可通过i n t e m e t 网在设有专门代理缓存的地方进行远程考试,使得该 系统的负载能力得到提高,使用范围得到扩大. 我们在开发北京交通大学 “ 在线考试系统” 时,对上面提到的负载 第 i n页 代 理 缓 存 和 负 载 均 衡 技 术 在 在 线 考 试 系 统 中 的 应 用 研 究 _ 均衡和代理缓存策略都做了考虑,并对有些问题进行了更进一步的研 究, 探索了一些新的实用技术,虽然这些技术没有来得及在 “ 在线考试 系统”中得到应用, 但可以相信, 它们对将来在线考试系统的进一步开 发和完善是很有意义的。 1 . 5论文的组织安排 第一章简单介绍了在线考试系统在现代考试中所具有的优势和 该系统的基本情况. 分析了代理缓存和负载均衡技术的现状, 并对改进 在线考试系统提出了所要解决的问题。 第二章对h ttp 协议做了分析, 并重点对和高速缓存及负载均衡 技术密切相关的部分进行了详细分析研究, 为在线考试系统结构设计的 改进提供了理论上的支持。 第三章 主要介绍了在线考试系统的体系结构和运行方式,以及各 模块的功能和部分现实, 并对系统中存在的一些基本间题进行了一般优 化,对优化结果做了性能测试。 第四章 提出一种和在线考试系统相适应的代理缓存方式,并对此 做了总体和详细设计,最后给出了代理缓存的性能分析方法。 第五章 在对当前各种负载均衡技术进行分析的基础上, 设计了一 种和在线考试系统相适应的负载均衡系统, 该系统中使用一种简单的负 载均衡自 适应算法,并给出了该算法的性能测试。 第六章总结了现有的工作,并提出下一步的工作。 第 1 2页 代理缓存和负 载均衡技术在在线考试系统中的应用研究 第二章 h t 下 p 协议分析 2 门 h 丁 下 p 协议概述 we b 的运作取决于一个标准的、定义良 好的方式,以便 w e b 组件相 互进行通信. 超文本传输协议 ( h t t p ) 是在w e b 上传输资源最常用的方 式.h t t p ( h y p e r t e x t t r a n s f e r p r o t o c o l ) 规定了客户机、w e b服务器、 w e b 组件之间相互交换消息的格式和含义. 2 . , . , h t t p 的运作方式及消息结构 h t t p 支持客户机( 浏览器) 与服务器间的通信, 相互传送数据。 一个 服务器可以为分布在世界各地的 许多客户机服务。 h t t p 采用请求/ 响应 的 握手方式, 其基本的运作由以 下4 步组成” : ( 1 ) 连接: 客户机与服务器建立连接. ( 2 ) 请求: 客户机向服务器提出请求. ( 3 ) 响应: 如果请求被接收,则服务器送回应答,在应答中包括状态 码和所要的响应信息. ( 4 ) 关闭: 客户机与服务器断开连接。 其中 “ 客户机”与 “ 服务器”是一个相对概念,只存在于某个特定 的连接期间, 而非专用程序,即在某个连接中的 “ 客户机”在另一个连 接中可能作为 “ 服务器” .这也就是说对于h t t p 中的程序,应具有 “ 客 户机”与 “ 服务器”的双重功能。 h t t p 的消息有两类,即 “ 客户机” 发出的请求消息与 “ 服务器”发 出的响应消息.h t t p的请求消息采用了开放式的方法库形式,即方法 可以扩充. 用方法表示请求的目 的, 用u r l 表示某个方法用在哪个资源 上,完整的请求消息格式如下: 请求消息一 请求行。 通用信息头 请求头i 实体头) c r l f 实体内容 请求行= 方法 请求u r l h t t p 版本号 c r l f 方法= g e t h e a d p o s t p u t 扩展方法 第 1 3贞 代理缓存和负载均衡技术在在线考试系统中的应用研究 u r l = 协议名称+ 宿主名十 目录与文件名 完整的响应信息格式如下: 响应信息= 状态行* ( 通用信息头响应头实体头) c r l f 实体内容 状态行二 h t t p 版本号状态码原因叙述 例: 用户代理、 代理机和服务器之间的h t t p 通信过程如图2 . 1 所示 图2 . 1 用户代理、 代理机和服务器之间的h t t p 通信示意图 2 . 1 . 2日 丁 t p / 1 . 。 请求方法 下面重点说明g e t , h e a d . p o s t 这三种方法的作用,因为这三种方 法是最经常用到的。 1 . g e t g e t 是最流行的方法.g e t请求可应用于由u r l指定的资源,并且 生成的响应是资源的当 前值. 这一响应会返回至发送请求的客户机. 如 u r l引用静态文件,g e t 请求将导致读取该文件,并返回其内容.如果 u r l 引用程序,则数据 如果有的话) 会作为响应主体而被返回。 在g e t 请求中可以 包含参数, 它们是根据用户的输人而构建的。 请 求c g i 资源是,便经常会出现这种情况.例如: g e t h t t p : / / w w w . a l t a v i s t a . c o m / c g i - b i n / q u e r y ? q = f o o 对于g e t 请求来说,假如其中含有请求修饰符,可能导致采取不同 的行动. 例如, 我们可对g e t 方法进行限制,以便只要当请求的资源的 最后一次修改时间大于由工 f - m o d i f i e d - s i n c e 标头指定的值时, 才将它 取回.用了请求修饰符 工 f - m i d i f i e d _ s i n c e 之后, 一方面可以缓解网络 的负担,另一方面还可缩短用户在等待响应时所感知的延时。如果在 i f - m i d i f i e d _ s i n c e 标头所指定的时间之后, 便没有再对资源进行修改, 服务器会发送一个响应码, 指出这一点 而不是伴随响应发送完整的实 体主体 但对于动态生成的资源来说, 最后一次修改时间的概念便完全 失去了意义。 第 1 4页 代理缓存和负载均衡技术在在线考试系统中的应用研究 g e t 方法没有请求实体。 如果存在请求实体,会被服务器忽略. 2 . h e a d h e a d 方法的唯一设计宗旨 便是获取同一个资源相关的元数据。 作为 h e a d请求的结果,不会返回任何响应主体。不过,服务器此时所返回 的元数据与使用g e t 请求方法是所返回的元数据应该是一样的。 h e a d方法的主要用途包括:以相当低的开销对服务器实现进行调 试, 并在不必实际检索资源的情况下, 判断它最近是否发生了改变。 元 数据既可以高速缓存, 也可用于对当前高速缓存的值进行更新 ( 在检测 到 资 源 发 生 改 变的 前 提 下) 。 在h t t p / 1 . 。 中, 通 过 对l a s t - m o d i f i e d 或 c o n t e n t - l e n g t h标头字段值进行检查,便可检测到是否发生了改变 然而, 由于资源可能在长度未变的情况下改变其内容, 所以纯粹的检查 c o n t e n t - l e n g t h 标头字段值将无法保证能正确地检测到改变, h e a d请求方法也没有请求主体。如果存在请求主体,会被服务器 忽略。 3 . p o s t 与用来检索信息的g e t 和h e a d 方法不同,p o s t 方法主要用于更新 现有的资源, 或提供输人功能,以便对数据进行处理. 请求主体含有数 据, 取决于r e q u e s t - u r l ,原始服务器可能允许执行特定的动作.p o s t 方法能更改资源内容,所以它是一种不安全的方法。 2 . 1 . 3盯丁 p / 1 . 0 标头字段 标头字段 ( 简称 “ 标头,) 是一种自由格式的 a s c i i字符串,代表 通常指定了值的名字。标头在 h t t p协议中起着重要的作用,并且是对 请求的处理方式进行更改的主要手段。 标头可用来提供与资源有关的元 数据, 如它的长度, 编码格式和语言等. 也可将标头想象成一种参数化 机制,或用于描述请求或响应.响应标头可指出响应是否被高速缓存, 或如何对消息进行解码, 以获得原始实体 ( 比 如指出用于转换它的压缩 算法等 ) . h t t p 消息可包含任意数量的标头, 每一个都由c r ( 回车) 和l f ( 换 行) 字符加以定界。当请求或响应数据通过代理而流经网络时, 针对标 头在消02 、 中的转发及解释机制, 有一些特定的规则同它们联系。对特定 类型的h t t p 请求一 响应消息来说, 有一些标头是必需的。 大多数标头都 是可选的,w e b组件出于特定的理由才会添加它们。w e b组件可忽略可 第 1 5页 代理缓存和负载均衡技术在在线考试系统中的 应用研究 选的标头。这些组件包括客户机、 代理和服务器。 标头采取的一种标准语法:一个名字加一个值,中间用 “ : ”字符 隔开。例如,为了指出消息的生成时间,d a t e标头可以采取以下形式 包含于消息中: d a t e : t h u : 2 3 d e c 1 9 9 9 0 8 : 1 2 : 3 1 g m t 其中, 字符串 “ d a t e ”是标头字段名, 字符串 “ t h u : 2 3 d e c 1 9 9 9 0 8 : 1 2 : 3 1 g m t 是字段值. h t t p定义了标头的分级结构。h t t p / 1 . 0中的消息标头是标头的标 准名,包括: ( 1 ) 在请求和响应消息中使用的g e n e r a l( 常规) 标头; ( 2 ) 在请求消息中使用的r e q u e s t ( 请求) 标头, 它可用于表示有关 响应的首选参数, 用于随请求一起包含附加的信息, 或用于对规定处理 请求的服务器进行限制; ( 3 ) 响应消息中的一个 r e s p o n s e ( 响应) 标头,用于提供有关响应 的附加信息,或用于向用户请求附加信息; ( 4 ) 请求和响应消息中的 e n t i t y ( 实体) 标头,实体标头用来提供 与实体相关的信息, 比如它的修改时间等。 如未能识别成常规标头或者 请求一 响应标头,则把它当作实体标头对待. 如果标头无法由消息的接收方所识别,它应被简单地忽略.然而, 如果接收方是代理的话,那么代理应转发该标头. 以下针对代理缓存和负载均衡中可能用到的一些标头分类说明如 下. 1 .常规标头 p r a g m a : p r a g m a 标头允许将伪指令发送给接收方。利用伪指令, 可请求组件在处理请求或响应时, 采用特定的方式行动, 伪指令通常都是任选的, 具体由 协议来决定.例如伪指令 “ p r a g m a : n o - c a c h e , 它用于通知路径中的 代理, 不要返回高速缓存的副本; 即发送方要求直接从原始服务器那里获得响应 c a c h e - c o n t r o l : c a c h e - c o n t r o l 标 头 用 于 在 请求 和 响应中 发 送 指 令,并限制高速缓存组件的行为,该标头将在下一小节中详细阐述。 2 .请求标头 第 1 6页 .卫t 理 w 查 和 负 载 均 衡 技 术 在 在 线 考 试 系 统 中 的 应 用 研 究 请求标头可由客户机用来随请求一道发送相关的信息, 或用来限制 服务器对请求如何进行处理.发送的信息可以是有关客户机的附加信 息,比如用户或用户代理的标识信息,或者是身份凭证。 i f - m o d i f i e d - s i n c e : i f - m o d i f i e d - s i n c e 是条件标头的一个例子, 指出将根据标头字段中指定的值, 用不同的方式来处理请求。 如果以前 服务器的响应已被高速缓存在客户机或代理中, 那么在l a s t - m o d i f i e d 响应标头中指定的值将在后续的g e t 请求中作为i f - m o d i f i e d - s i n c e 标 头内的参数使用。如对下面的请求来说: g e t / f o o . h t m l h t t p 八. 0 i f - m o d i f i e d - s i n c e : s u n , 2 1 m a y 2 0 0 0 0 7 : 0 0 : 2 5 g m t 服务器会将i f - m o d i f i e d - s i n c e 标头中指定的值与资源的最后一次 修改时间进行比 较.如果自s u n , 2 1 m a y 2 0 0 0 0 7 : 0 0 : 2 5 g m t 以 来, 资源没有改变,那么服务器会只返回3 0 4 n o t m o d i f i e d 响应。对于不 经常改变的资源, 这有助于减少不必要的数据传输. 服务器不必要重新 生成资源, 而且由于客户机可在本地获得内容, 也有助于缩短用户所感 知的延迟。 3 响应标头 正象请求标头用于发送与请求有关的附加信息,响应标头则用来发 送更多与响应和始发响 应的那个服务器有关的信息。 如果响应标头不能 被识别,便假定它为实体标头。 l o c a t i o n : l o c a t i o n 标头用来将请求重定向 至可真正找到资源的地 方,它在重定向类的响应中特别有用,l o c a t i o n标头的语法如下: l o c a t i o n : h t t p : / / w w w . f o o , c o m / l e v e l l 八w o s d o w n / l o c a t i o n . h t m l 由于针对一个请求,可在响应中选择一个资源的多种变体,所以 l o c a t i o n标头提供了一 种方法来标识所选变体的位置.假如同 时在多 个镜像站点复制了 一系列资源, 那么可用l o c a t i o n标头来指出正确的 站点,以便客户机从那里获取所需的资源。假如作为一个请求 ( 比 如 p o s t ) 的结果,而创建了新的资源,那么 l o c a t i o n 标头用于对创建的 资源进行标识。 4 实体标头 实体标头用来包含与实体主体或资源 假如实体主体不存在的话) 有关的信息。 实体标头是被请求或发送的特定资源的一种属性。 实体标 头在请求和响应中都可存在。 无法识别的常规、 请求或响应标头会被当 作实体标头对待 在请求和响应消息中, 可自由加人新标头, 利用它添 加同实体有关的新的元数据, 而不必担心它被错误得解释为一个常规、 第 1 7页 代理缓存和负载均衡技术在在线考试系统中的应用研究 请求或响应标头。常见实体标头见表2 . 1 , 表2 . 1常见实体标头 实体标头名实 体 标 头 作 用 c o n t e n t - t y p e 指出实体主体的媒体类型,例如 i m a g e / g i f , t e x t / h t m l 或a p p li c a t i o n / x -j a v a s c r i p t 等. c o n t e n t - l e n g t h指出实体主体的字节长度。 e x p i r e指出在指定的时间之后,实体就应当过期并失效。 l a s t - mo d i fi e d 指定了资源最后一次修改的时间. 2 . 1 . 4 h t 下 p / 1 . 。响应类别 每条h t t p响应消息都以s t a t u s - l i n e 状态行) 开始。状态行包括 3 个字段:服务器的协议版本号、响应码以及一个自 然语言原因短语。 在服务器处进行处理的请求有可能成功、 失败或者被重定向到另一台服 务器。 请求消息中可能含有语法错误, 或者服务器在处理请求时出现问 题. 不同 种类的响应组成响应类( r e s p o n s e c l a s s e s ) 集合。 在h t t i 中, 5 类响应中的每一类都有几个响应码。每个响应码都是3 位整数。这5 个响应类包括信息类,其响应码是以 1 开头的3 位整数 ( 写作 1 x x ) , 成功类 ( 2 x x ) , ,一 重定向类 ( 3 x x ) 、客户机错误类 ( 4 x x )以及服务器错 误类 ( 5 x x ) . 从状态行字段中获得响应码,可以检测出h t t p 一系列的错误信息, 因而能透明地将连接请求重新定向到另一台服务器 或缓存) , 以便为用 户继续提供服务.例如,a 服务器不能使用或者数据库出现错误,错误 信息将会返回到负载均衡器上, 然后将客户的访问重定向到b 服务器或 者将消息重放到其他数据库中去,整个过程对用户是透明的。 2 . 2 h 下 t p 协议与高速缓存的关系 高速缓存存储着可供以后重新使用的响应。h t t p规定了与高速缓 存有关的几个重要规定. 这些规则

温馨提示

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

评论

0/150

提交评论