图解HTTP权威指南(二)| 链接管理

 

 

 

1、两个问题

一、HTTP是如何使用TCP链接的
二、HTTP的链接,并行链接、keep-alive(持久链接)和管道化链接
 

2、TCP链接

一、什么是TCP
 
TCP/IP是全球计算机及网络设备都在使用的一种经常使用的分组交换 网络层协议分层协议集。客户端应用程序能够打开一条TCP/IP链接,链接到可能运行在世界任何地方的服务器应用程序。一旦链接创建起来,在客户端和服务器的计算机之间的交换的报文就永远不会丢失、受损或失序。
 
二、浏览器的请求过程
 

 

 

三、TCP的可靠数据管道
 
HTTP链接实际上就是TCP链接和一些使用链接的规则。TCP链接是因特网上的可靠链接。 TCP为HTTP提供了一条可靠的比特传输管道。从TCP链接一段填入的字节会从另外一端以原有的顺序、正确的传送出来。

 

 

四、TCP流是分段的、由IP分组传送
 
TCP的数据是经过名为IP分组(或IP数据报)的小数据块来发送的。HTTP位于TCP/IP协议栈的最顶层。

 

 

HTTP要传送一条报文时,会以流的形式将报文数据的内容经过一条打开的TCP链接按序传输。TCP收到数据流以后,会将数据流砍成被称做段的小数据块,并将段封装在IP分组中,经过因特网进行传输。全部的工做都是经过由TCP/IP软件来处理的。
 
每一个TCP段都是由IP分组承载,从一个IP地址发送到另外一个IP地址的。每一个IP分组中都包括:
1)一个IP分组首部(一般为20字节)
2)一个TCP段首部(一般为20字节)
3)一个TCP数据块(0个或多个字节)
 
IP首部包含了源和目的的IP地址,长度和其余一些标记。TCP段的首部包含了TCP端口号、TCP控制标记,以及用于数据排序和完整性检查的一些数字值。
 
四、保持TCP链接的正确运行
 
在任意时刻计算机均可以有几条TCP链接处于打开状态。 TCP是经过端口号来保持全部这些链接的正确运行的。TCP链接经过4个值来识别的: <源IP地址、源端口号、目的IP地址、目的端口号>这四个值一块儿惟一地定义了一条链接。两条不一样的TCP链接不能拥有4个彻底相同的地址组件值。

 

 

 
五、TCP套接字编程
 
操做系统提供了一些操纵其TCP链接的工具。
 

 

 

 
套接字API容许用户建立TCP的端点数据结构,将这些端点与远程服务器的TCP端点进行链接,并对数据流进行读写。TCP API隐藏了全部底层网络协议的握手细节,以及TCP数据流与IP分组之间的分段和重装细节。
 
客户端和服务端在实现HTTP事务时所应执行的步骤:

 

  

3、HTTP的几种链接

一、串行链接
 
串行事务处理时延,当你打开一个index.html页面时,里面有包含3张图片,那么它的HTTP事务如图

 

 

缺点:每一个事务都须要一个新的链接,那么链接时延和慢启动时延就会叠加起来。
 
 
二、并行链接
 
每一个事务都有本身的TCP链接,只是并行处理。

 

 

   
三、持久链接
 
HTTP/1.1容许HTTP设备在事务处理结束以后将TCP链接保持在打开状态,以便为将来的HTTP请求重用现存的链接。在事务处理结束以后仍然保持在打开状态的TCP链接被称为持久链接。非持久链接会在每一个事务结束以后关闭。持久链接会在不一样事务之间保持打开状态,直到客户端或者服务器决定将其关闭。
 
重用对目标服务器打开的空闲持久链接,就能够避开缓慢的链接创建阶段。并且,已经打开的链接还能够避免慢启动的拥塞适应阶段,以便更快速地进行数据的传输。
 

 

 

 
HTTP/1.0+:keep-alive链接
HTTP/1.1:persistent链接
 
四、管道化持久链接
 
HTTP/1.1容许在持久连上上可选的使用 请求管道在响应到达以前,能够将多条请求放入队列。当第一条请求经过网络流向另外一端的服务器时,第二条和第三条请求也能够开始发送了。早高时延网络条件下,这样作能够下降网络的环回时间,提升性能。
 

 

 4、学习交流

欢迎你们关注个人公众号,一块儿交流、学习。 html

相关文章
相关标签/搜索