。–客户机向服务器发送请求((RequestRequest))绝大多数的HTTP通信都是由客户发起的,包含一个作用于服务器上某个资源的请求(例如下载服务器上的文件)。请求包含以下内容:?请求方法(method),例如:get。?统一资源标识符(URI),例如:/。?协议版本号(version),通常为HTTP/。?MIME格式的消息,包括:请求限定符(modifier)、客户机信息(clientinformation),还可能会有正文内容(bodycontent)。(续)–服务器向客户发送响应((ResponseResponse))服务器在收到客户的请求后,按照客户的要求对指定资源进行适当处理(例如检索到客户所需的文件),并给予相应的响应。响应包含以下内容:?一个状态行,包括:»消息的协议版本号(version)»一个成功或错误的状态码(essorerrorcode)。?MIME格式的消息»服务器信息(serverinformation)»实体元信息(meta-information)»还可能会有实体的正文内容(bodycontent)。(续)–直接通信((munication))这种方式是一种最简单的情况,通过用户代理(UA)和源服务器(O)之间的单个连接来完成,如图所示。(续)–通过中介的HTTP通信中介有三种常见的形式:代理代理(Proxy)、网关网关(Gateway)和隧道隧道(Tunnel)。Proxy»Proxy是一种将请求转发(forwarding)的代理(agent)»接收客户的请求»在对该请求进行局部或者全部的修改后,将请求转发给URI所指示的服务器。»服务器把响应发回给Proxy»Proxy然后把响应再发给客户端。(续)–通过中介的HTTP通信(续)?Gateway:»Gateway是一种接收(receiving)代理,通常作为两类服务器(:Web和Email)的中介,将一类服务器所支持的协议翻译为另一类服务器所支持的协议。»示例:HTTP-POP3网关在收到客户的请求(HTTP协议)时,对其进行转换,并以其它协议(POP3)的格式提交给POP3服务器;当收到POP3服务器的响应后,将其以HTTP的格式返回给客户。?Tunnel»Tunnel是两个连接之间的中继系统,与Proxy和Gateway不同,它不对HTTP消息作任何修改。当客户与服务器的通信需要通过防火墙(firewall)等中介系统时,就可以使用Tunnel。(续)–通过中介的HTTP通信(续)通常,可以以任意的方式来组合各种中介系统,从而构成不同的应用解决方案。如图所示。在用户代理(UA)和源服务器(O)之间有三个中介(A,B和C)。一个通过整个链的请求或响应消息必须经过四个独立的连接。尽管该图中的连接是线性的,事实上,每个参与者都可能进行多重的、并发的通讯。例如,B还可以从其它许多客户机接收请求,而不仅仅局限于A;并将这些请求传送给其它的服务器,而不仅仅局限于C;这些工作可以同时以并发的方式完成。(续)(续)–使用缓存的HTTP通信在HTTP通信中的任何一个成员,包括:客户代理、服务器、中介(除隧道外),均可以采用内部的缓存来处理客户请求。如果HTTP通信链中的一个成员已经对某个请求的响应进行了缓存,那么它就不再将该请求向前传递,而直接将响应返回给用户,从而缩短请求/响应链。优点:这样的处理方式能减少请求-响应链路上的网络负载,提高响应速度。在用户经常提出同样的请求
04.HTTP交互 来自淘豆网m.daumloan.com转载请标明出处.