bs交互协议-http

上传人:xzh****18 文档编号:55829860 上传时间:2018-10-07 格式:PPT 页数:22 大小:449.50KB
返回 下载 相关 举报
bs交互协议-http_第1页
第1页 / 共22页
bs交互协议-http_第2页
第2页 / 共22页
bs交互协议-http_第3页
第3页 / 共22页
bs交互协议-http_第4页
第4页 / 共22页
bs交互协议-http_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《bs交互协议-http》由会员分享,可在线阅读,更多相关《bs交互协议-http(22页珍藏版)》请在金锄头文库上搜索。

1、,Section 2 B/S交互协议HTTP第2章HTTP的交互模型谭晓阳 南京航空航天大学计算机系,WEB技术和应用开发,HTTP的交互模型,本讲内容 1 宏观运作原理请求/响应协议客户与服务器通信的三种方式 2 内部操作过程基于网络层的HTTP交互过程一个实际的例子,1 宏观运作原理,1.1 请求/响应协议 HTTP协议是基于请求响应模式的。 客户机向服务器发送请求(Request Request)绝大多数的HTTP通信都是由客户发起的,包含一个作用于服务器上某个资源的请求(例如下载服务器上的文件)。请求包含以下内容: ?请求方法(method),例如:get。 ?统一资源标识符(URI)

2、,例如:http:/ ?协议版本号(version),通常为HTTP/1.0或HTTP/1.1。 ?MIME格式的消息,包括:请求限定符(modifier)、客户机信息(client information),还可能会有正文内容(body content)。,1 宏观运作原理,服务器向客户发送响应(Response Response)服务器在收到客户的请求后,按照客户的要求对指定资源进 行适当处理(例如检索到客户所需的文件),并给予相应的响应。 响应包含以下内容: ?一个状态行,包括: 消息的协议版本号(version) 一个成功或错误的状态码(success or error code)。

3、?MIME格式的消息 服务器信息(server information) 实体元信息(meta-information) 还可能会有实体的正文内容(body content)。,1 宏观运作原理,1.2 客户与服务器通信的三种方式 直接通信(Direct Communication Direct Communication)这种方式是一种最简单的情况,通过用户代理(UA)和源服务器(O)之间的单个连接来完成,如图所示。,1 宏观运作原理,通过中介的HTTP通信中介有三种常见的形式:代理代理(Proxy)、网关网关(Gateway)和隧道隧道(Tunnel)。Proxy Proxy是一种将请求转

4、发(forwarding)的代理(agent) 接收客户的请求 在对该请求进行局部或者全部的修改后,将请求转发给URI 所指示的服务器。 服务器把响应发回给Proxy Proxy然后把响应再发给客户端。,1 宏观运作原理,通过中介的HTTP通信(续) ?Gateway: Gateway是一种接收(receiving)代理,通常作为两类服务器 (e.g:Web和Email)的中介,将一类服务器所支持的协议翻 译为另一类服务器所支持的协议。 示例:HTTPPOP3网关在收到客户的请求(HTTP协议)时, 对其进行转换,并以其它协议(POP3)的格式提交给POP3 服务器;当收到POP3服务器的响应

5、后,将其以HTTP的格式 返回给客户。 ?Tunnel Tunnel是两个连接之间的中继系统,与Proxy和Gateway不同, 它不对HTTP消息作任何修改。当客户与服务器的通信需要通 过防火墙(firewall)等中介系统时,就可以使用Tunnel。,1 宏观运作原理,通过中介的HTTP通信(续)通常,可以以任意的方式来组合各种中介系统,从而构成不同的应用解决方案。如图所示。在用户代理(UA)和源服务器(O)之间有三个中介(A,B和C)。 一个通过整个链的请求或响应消息必须经过四个独立的连接。 尽管该图中的连接是线性的,事实上,每个参与者都可能进行多重的、并发的通讯。例如,B还可以从其它许

6、多客户机接收请求,而不仅仅局限于A;并将这些请求传送给其它的服务器,而不仅仅局限于C;这些工作可以同时以并发的方式完成。,1 宏观运作原理,1 宏观运作原理,使用缓存的HTTP通信 在HTTP通信中的任何一个成员,包括:客户代理、服务器、中介(除隧道外),均可以采用内部的缓存来处理客户请求。 如果HTTP通信链中的一个成员已经对某个请求的响应进行了缓存,那么它就不再将该请求向前传递,而直接将响应返回给用户,从而缩短请求/响应链。 优点:这样的处理方式能减少请求响应链路上的网络负载,提高响应速度。 在用户经常提出同样的请求,或者多个用户具有类似请求的情况 下,该方式非常有用。例如:公司的Intr

7、anet上,或者校园网的网 络中心,都可以设置Proxy,对于大家经常下载的公用软件和资 料,可以直接从Proxy上获得,这样可以加快下载速度,降低网 络费用。,1 宏观运作原理,下图是针对一个未被UA或A所缓存的请求,而B中曾经对该请求的响应进行过缓存。B之所以会对该请求进行缓存,可能是该用户或其它用户在以前提交过同样的请求。,2 内部操作过程,2.1 基于网络层的HTTP交互过程HTTP是应用层协议,它从应用的角度规定了客户和服务器在通信时的消息格式和语义,而它的实现必须建立在其下的网络层之上。下面,以Socket这一最常用的网络层编程接口为例来说明客户和服务器是如何通过网络层来实现HTT

8、P交互。整个过程包括四个步骤:建立连接发送请求发送响应关闭连接。,2 内部操作过程,建立连接HTTP服务器始终在HTTP端口守候客户的连接要求。客户打 开一个套接字(Socket)并把它绑定在一个随机选择的端口上, 然后通过该套接字向服务器的HTTP端口发出连接要求。当有 一个连接要求到达时,服务器生成一个新的套接字,然后产生 一个新的过程或线程来处理用户的请求。,2 内部操作过程,建立连接(续),2 内部操作过程,发送请求在客户和服务器成功建立连接后,客户机可以使用Socket接口中的send、write等API将请求消息发送出去,而服务器则可以使用Socket接口中的recv、read等A

9、PI来接收请求消息。发送响应服务器在处理完客户的请求后,要向客户机发送响应消息。此时可使用Socket接口中的send、write等API将响应消息发送出去,而客户则使用Socket接口中的recv、read等API来接收响应消息。注意:将客户的请求和服务器的响应正确地发送给对方是网络层的任务,而为了确保客户和服务器能够正确地理解对方传递的消息则是HTTP这一应用层协议的任务,即需要规定客户和服务器双方所发送消息的格式和语义。,2 内部操作过程,关闭连接在一次请求/响应完毕后,客户和服务器双方都可以通过关 闭套接字来结束HTTP交互。 HTTP/1.0中仅支持非持久连接,因此,在一次请求/响应

10、完毕后,客户或服务器将通过关闭套接字来结束HTTP交互。 在HTTP/1.1中,连接的缺省类型为持久连接,即在客户与服务器建立连接后,可以发送多个请求和响应,直到客户或者服务器显式地关闭该连接。之后,客户在发送新的请求之前,必须与服务器重新建立连接。 使用持久连接具有以下优点: 节省宿主机的开销,减少用户的等待时间。 将减少网络流量,缓解网络堵塞。 客户的请求和服务器的响应可以以流水线(pipeline)的方式 运作。这样可以提高连接的使用效率,减少用户的等待时间。,2 内部操作过程,2.2 一个实际的例子下面,我们给出一个实际的例子,通过分析客户/服务器在HTTP交互中发送的数据包来进一步说

11、明HTTP作为一个网络层之上的应用是如何利用TCP/IP协议所提供的可靠通信服务的。,2 内部操作过程,说明:在实际情况下,上述数据包是相互混杂的。此处为了清晰起见,将它们分开列出。,2 内部操作过程,2 内部操作过程,从该例子中可以看出: 两个TCP连接是独立的,它们在各自的数据传输完毕后分别结束。客户与服务器的交互过程中,除了传输的HTML文件和图像文件是有效负载以外,其它的数据包是为了传输文件而发送的额外负载。即使不传输任何文件,客户和服务器之间为了建立和关闭连接至少需要交换7个数据包,这占据HTTP协议开销中的一大部分。,THE END,Any suggestion will be welcome and ,Review,1 教学目标 从宏观上掌握HTTP协议运作的基本原理,包括:请求/响应协议、客户/服务器通信的三种模式。 从微观上理解客户/服务器利用HTTP协议进行交互的内部操作过程。 2 知识点 HTTP是一种请求/响应协议。 HTTP通信的三种模式:简单通信、通过中介系统的通信、使用缓存的通信。 客户/服务器利用HTTP协议进行交互的内部操作过程,包括:建立连接、发送请求、发送响应、关闭连接。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业合同/协议

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号