网关经常作为通过防火墙的服务器端的门户 , 网关还可以作为一个协议翻译器以便存取那些存储在非HTTP系统中的资源 。
13.通道(Tunnel):是作为两个连接中继的中介程序 。一旦激活 , 通道便被认为不属于HTTP通讯 , 尽管通道可能是被一个HTTP请求初始化的 。当被中继的连接两端关闭时 , 通道便消失 。当一个门户(Portal)必须存在或中介(Intermediary)不能解释中继的通讯时通道被经常使用 。
14.缓存(Cache):反应信息的局域存储 。
2.3 HTTP协议的运作方式
HTTP协议是基于请求/响应范式的 。一个客户机与服务器建立连接后 , 发送一个请求给服务器 , 请求方式的格式为 , 统一资源标识符、协议版本号 , 后边是MIME信息包括请求修饰符、客户机信息和可能的内容 。服务器接到请求后 , 给予相应的响应信息 , 其格式为一个状态行包括信息的协议版本号、一个成功或错误的代码 , 后边是MIME信息包括服务器信息、实体信息和可能的内容 。
许多HTTP通讯是由一个用户代理初始化的并且包括一个申请在源服务器上资源的请求 。最简单的情况可能是在用户代理(UA)和源服务器(O)之间通过一个单独的连接来完成(见图2-1) 。
图2-1
当一个或多个中介出现在请求/响应链中时 , 情况就变得复杂一些 。中介由三种:代理(Proxy)、网关(Gateway)和通道(Tunnel) 。一个代理根据URI的绝对格式来接受请求 , 重写全部或部分消息 , 通过URI的标识把已格式化过的请求发送到服务器 。网关是一个接收代理 , 作为一些其它服务器的上层 , 并且假如必须的话 , 可以把请求翻译给下层的服务器协议 。一个通道作为不改变消息的两个连接之间的中继点 。当通讯需要通过一个中介(例如:防火墙等)或者是中介不能识别消息的内容时 , 通道经常被使用 。图2-2
上面的图2-2表明了在用户代理(UA)和源服务器(O)之间有三个中介(A,B和C) 。一个通过整个链的请求或响应消息必须经过四个连接段 。这个区别是重要的 , 因为一些HTTP通讯选择可能应用于最近的连接、没有通道的邻居 , 应用于链的终点或应用于沿链的所有连接 。尽管图2-2是线性的 , 每个参与者都可能从事多重的、并发的通讯 。例如 , B可能从许多客户机接收请求而不通过A , 并且/或者不通过C把请求送到A , 在同时它还可能处理A的请求 。
任何针对不作为通道的汇聚可能为处理请求启用一个内部缓存 。缓存的效果是请求/响应链被缩短 , 条件是沿链的参与者之一具有一个缓存的响应作用于那个请求 。下图说明结果链 , 其条件是针对一个未被UA或A加缓存的请求 , B有一个经过C来自O的一个前期响应的缓存拷贝 。
图2-3
在Internet上 , HTTP通讯通常发生在TCP/IP连接之上 。缺省端口是TCP 80 , 但其它的端口也是可用的 。但这并不预示着HTTP协议在Internet或其它网络的其它协议之上才能完成 。HTTP只预示着一个可靠的传输 。
以上简要介绍了HTTP协议的宏观运作方式 , 下面介绍一下HTTP协议的内部操作过程 。
首先 , 简单介绍基于HTTP协议的客户/服务器模式的信息交换过程 , 如图2-4所示 , 它分四个过程 , 建立连接、发送请求信息、发送响应信息、关闭连接 。
图2-4
在WWW中 , “客户”与“服务器”是一个相对的概念 , 只存在于一个特定的连接期间 , 即在某个连接中的客户在另一个连接中可能作为服务器 。WWW服务器运行时 , 一直在TCP80端口(WWW的缺省端口)监听 , 等待连接的出现 。
下面 , 讨论HTTP协议下客户/服务器模式中信息交换的实现 。1.建立连接 连接的建立是通过申请套接字(Socket)实现的 。客户打开一个套接字并把它约束在一个端口上 , 假如成功 , 就相当于建立了一个虚拟文件 。以后就可以在该虚拟文件上写数据并通过网络向外传送 。
推荐阅读
- 护发的方法有哪些
- 310入手四天感受
- 溺爱的事例
- SMTP协议的命令和应答
- 珍珠霜的正确使用方法是什么
- 肺汤的做法 原来是这样做的
- 6020用了一年有感
- Excel出现乱码的解决办法
- DHCP协议详解
- 微信的麦克风权限在哪里打开
