




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2 6Http交互的宏观运行原理 2 6 1请求 响应协议HTTP协议是基于请求 响应模式的 客户机向服务器发送请求 RequestRequest 绝大多数的HTTP通信都是由客户发起的 包含一个作用于服务器上某个资源的请求 例如下载服务器上的文件 请求包含以下内容 请求方法 method 例如 get 统一资源标识符 URI 例如 2 6Http交互的宏观运行原理 续 服务器向客户发送响应 ResponseResponse 服务器在收到客户的请求后 按照客户的要求对指定资源进行适当处理 例如检索到客户所需的文件 并给予相应的响应 响应包含以下内容 一个状态行 包括 消息的协议版本号 version 一个成功或错误的状态码 successorerrorcode MIME格式的消息 服务器信息 serverinformation 实体元信息 meta information 还可能会有实体的正文内容 bodycontent 2 6Http交互的宏观运行原理 续 2 6 2客户与服务器通信的三种方式 直接通信 DirectCommunicationDirectCommunication 这种方式是一种最简单的情况 通过用户代理 UA 和源服务器 O 之间的单个连接来完成 如图所示 2 6Http交互的宏观运行原理 续 通过中介的HTTP通信中介有三种常见的形式 代理代理 Proxy 网关网关 Gateway 和隧道隧道 Tunnel Proxy Proxy是一种将请求转发 forwarding 的代理 agent 接收客户的请求 在对该请求进行局部或者全部的修改后 将请求转发给URI所指示的服务器 服务器把响应发回给Proxy Proxy然后把响应再发给客户端 2 6Http交互的宏观运行原理 续 通过中介的HTTP通信 续 Gateway Gateway是一种接收 receiving 代理 通常作为两类服务器 e g Web和Email 的中介 将一类服务器所支持的协议翻译为另一类服务器所支持的协议 示例 HTTP POP3网关在收到客户的请求 HTTP协议 时 对其进行转换 并以其它协议 POP3 的格式提交给POP3服务器 当收到POP3服务器的响应后 将其以HTTP的格式返回给客户 Tunnel Tunnel是两个连接之间的中继系统 与Proxy和Gateway不同 它不对HTTP消息作任何修改 当客户与服务器的通信需要通过防火墙 firewall 等中介系统时 就可以使用Tunnel 2 6Http交互的宏观运行原理 续 通过中介的HTTP通信 续 通常 可以以任意的方式来组合各种中介系统 从而构成不同的应用解决方案 如图所示 在用户代理 UA 和源服务器 O 之间有三个中介 A B和C 一个通过整个链的请求或响应消息必须经过四个独立的连接 尽管该图中的连接是线性的 事实上 每个参与者都可能进行多重的 并发的通讯 例如 B还可以从其它许多客户机接收请求 而不仅仅局限于A 并将这些请求传送给其它的服务器 而不仅仅局限于C 这些工作可以同时以并发的方式完成 2 6Http交互的宏观运行原理 续 2 6Http交互的宏观运行原理 续 使用缓存的HTTP通信在HTTP通信中的任何一个成员 包括 客户代理 服务器 中介 除隧道外 均可以采用内部的缓存来处理客户请求 如果HTTP通信链中的一个成员已经对某个请求的响应进行了缓存 那么它就不再将该请求向前传递 而直接将响应返回给用户 从而缩短请求 响应链 优点 这样的处理方式能减少请求 响应链路上的网络负载 提高响应速度 在用户经常提出同样的请求 或者多个用户具有类似请求的情况下 该方式非常有用 例如 公司的Intranet上 或者校园网的网络中心 都可以设置Proxy 对于大家经常下载的公用软件和资料 可以直接从Proxy上获得 这样可以加快下载速度 降低网络费用 2 6Http交互的宏观运行原理 续 下图是针对一个未被UA或A所缓存的请求 而B中曾经对该请求的响应进行过缓存 B之所以会对该请求进行缓存 可能是该用户或其它用户在以前提交过同样的请求 2 7Http交互的内部操作过程 2 7 1基于网络层的HTTP交互过程HTTP是应用层协议 它从应用的角度规定了客户和服务器在通信时的消息格式和语义 而它的实现必须建立在其下的网络层之上 下面 以Socket这一最常用的网络层编程接口为例来说明客户和服务器是如何通过网络层来实现HTTP交互 整个过程包括四个步骤 建立连接 发送请求 发送响应 关闭连接 2 7Http交互的内部操作过程 续 建立连接HTTP服务器始终在HTTP端口守候客户的连接要求 客户打开一个套接字 Socket 并把它绑定在一个随机选择的端口上 然后通过该套接字向服务器的HTTP端口发出连接要求 当有一个连接要求到达时 服务器生成一个新的套接字 然后产生一个新的过程或线程来处理用户的请求 2 7Http交互的内部操作过程 续 建立连接 续 2 7Http交互的内部操作过程 续 发送请求在客户和服务器成功建立连接后 客户机可以使用Socket接口中的send write等API将请求消息发送出去 而服务器则可以使用Socket接口中的recv read等API来接收请求消息 发送响应服务器在处理完客户的请求后 要向客户机发送响应消息 此时可使用Socket接口中的send write等API将响应消息发送出去 而客户则使用Socket接口中的recv read等API来接收响应消息 注意 将客户的请求和服务器的响应正确地发送给对方是网络层的任务 而为了确保客户和服务器能够正确地理解对方传递的消息则是HTTP这一应用层协议的任务 即需要规定客户和服务器双方所发送消息的格式和语义 2 7Http交互的内部操作过程 续 关闭连接在一次请求 响应完毕后 客户和服务器双方都可以通过关闭套接字来结束HTTP交互 HTTP 1 0中仅支持非持久连接 因此 在一次请求 响应完毕后 客户或服务器将通过关闭套接字来结束HTTP交互 在HTTP 1 1中 连接的缺省类型为持久连接 即在客户与服务器建立连接后 可以发送多个请求和响应 直到客户或者服务器显式地关闭该连接 之后 客户在发送新的请求之前 必须与服务器重新建立连接 使用持久连接具有以下优点 节省宿主机的开销 减少用户的等待时间 将减少网络流量 缓解网络堵塞 客户的请求和服务器的响应可以以流水线 pipeline 的方式运作 这样可以提高连接的使用效率 减少用户的等待时间 2 7Http交互的内部操作过程 续 2 2一个实际的例子下面 我们给出一个实际的例子 通过分析客户 服务器在HTTP交互中发送的数据包来进一步说明HTTP作为一个网络层之上的应用是如何利用TCP IP协议所提供的可靠通信服务的 2 7Http交互的内部操作过程 续 说明 在实际情况下 上述数据包是相互混杂的 此处为了清晰起见 将它们分开列出 2 7Http交互的内部操作过程 续 2 7Http交互的内部操作过程 续 从该例子中可以看出 两个TCP连接是独立的 它们在各自的数据传输完毕后分别结束 客户与服务器的交互过程中 除了传输的HTML文件和图像文件是有效负载以外 其它的数据包是为了传输文件而发送的额外负载 即使不传输任何文件 客户和服务器之间为了建立和关闭连接至少需要交换7个数据包 这占据HTTP协议开销中的一大部分 2 7Http交互的内部操作过程 要求 能力宏观上掌握HTTP协议运作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网格员工作培训课件
- 手术室护理质量提升计划与执行方案
- 2025年学历类自考专业(护理)内科护理学(二)-儿科护理学(二)参考题库含答案解析(5套)
- 共享出行行业2025年市场需求与供给平衡分析报告
- 护理日常社交礼仪
- 城市地下空间综合开发利用项目2025年城市地下空间利用与可持续发展研究报告
- 容器化应用性能调优案例-洞察及研究
- 2025年学历类自考专业(建筑工程)工程地质及土力学-工程地质及土力学参考题库含答案解析(5套)
- 网吧消防知识培训课件信息
- 2025年学历类自考专业(工商企业管理)国际企业管理-企业管理咨询参考题库含答案解析(5套)
- GA 1301-2016火灾原因认定规则
- TTT培训师培训课件(-)
- 学校学生健康体检知识培训课件
- 重医大内科诊疗操作规范内科诊疗操作规范
- 《幸福比优秀更重要》读书分享 课件
- 脚手架作业安全管理培训
- 经颈静脉肝内门体分流术(TIPS)的护理课件
- (中职)VB程序设计电子课件(完整版)
- 钛白粉安全技术说明书msds
- 汽车VIN效验码计算器
- 脱硫塔操作规程(双碱法)(2)
评论
0/150
提交评论