传智博客
快捷导航
蚂蚁部落 网站首页 前端教程 HTTP协议 查看内容

栏目导航

HTTP 持久连接

2017-10-10 02:03| 发布者: admin| 查看: 227| 评论: 0|来自: 蚂蚁部落

传智播客

在介绍持久连接之前,先简单介绍一下浏览器与HTTP服务器建立TCP连接的简单过程(三次握手):

(1).客户端向服务器发送一个小的冗余消息。

(2).服务器向客户端确认并响应以一个小的冗余消息。

(3).最后是客户端向服务器回确认。

往返时间(Round Trip Time,简称RTT)是分组从客户主机游动到服务器主机再返回客户主机所花的时间。

RTT包括分组传播延迟、在中间路由器和交换机上的分组排队延迟以及分组处理延迟。

前两次握手结束所花费的时间是一个RTT,此时客户端将HTTP请求信息发送到TCP连接中,客户端同时将第三次握手确认捎带在包含这个信息的数据分节中发送出去。最后,服务器接收到请求信息之后,会将响应内容发送到TCP连接中,服务器同时将早前收到的客户请求的确认捎带在包含该响应的数据分节中发送出去。

图示如下:

a:3:{s:3:\"pic\";s:43:\"portal/201710/10/031059adcsx5cnn52252p2.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

完成这么一个交互,总体所花费的时间大约为2个RTT加上响应数据传输时间。

非持久连接和持久连接:

客户端发出请求,服务器端对每个请求进行响应。

对于这些请求|响应,如果每次都经过一个单独的TCP连接,称为非持久连接。反之,如果每次都经过相同的TCP连接进行发送,称为持久连接,也就是多个请求和响应可以利用同一个TCP连接,而不是每一次请求响应都要新建一个TCP连接。考虑到每次TCP(每开始一个TCP连接都是慢启动)连接的高消耗,持久性连接好处不言而喻。

HTTP1.1协议默认开启持久链接,截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201710/10/032939xghpy0s0k0cc21st.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

当然持久连接不会无限期的保持,通常,HTTP服务器在某个连接闲置一段特定时间后关闭它,而这段时间通常是可以配置的。下面是持久性连接和非持久连接对比图示:

a:3:{s:3:\"pic\";s:43:\"portal/201710/10/033211xqfzqgjqw00mu67r.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}


鲜花

握手

雷人

路过

鸡蛋

最新评论

关于我们|手机版|小黑屋| ( 鲁ICP备10022556号-3 )

GMT+8, 2017-12-11 19:24 , Processed in 0.063108 second(s), 21 queries .

Powered by Discuz! X3.2 Licensed

Copyright © 2012-2017 Design: 蚂蚁部落

返回顶部