http连接有两种,一种为持久性连接;另一种为非持久性连接。
由于不同的http版本,使用不同的方式。
在这里分析一下二者的区别:
一、非持久性连接(nonpersistent http)
特点:每个tcp连接最多允许传输一个对象
http 1.0使用的非持久性连接
过程:
响应时间分析与建模
我们需要知道:
rtt (round trip time):从客户端发送一个很小的数据包到服务器并返回所经历的时间。
响应时间(response time):
a.发起建立tcp连接:1个rtt
b.发送http请求消息到http响应消息的前几个字节到达: 1个rtt
c.响应消息中所含文件/对象的传输时间
total=2rtt 文件发送时间
非持久性连接的问题
每个对象需要2个rtt
操作系统需要为每个tcp连接开销资源
二、持久性连接
发送响应后,服务器保持tcp连接的打开
后续的http消息可以通过这个连接发送
(1)无流水(pipelining)的持久性连接
客户端只有收到前一个响应后才发送新的请求
每个被引用的对象耗时1个rtt
(2)带有流水机制的持久性连接
http 1.1的默认选项
客户端只要遇到一个引用对象就尽快发出请求
理想情况下,收到所有的引用对象只需耗时约1个rtt