当前位置: 移动技术网 > IT编程>开发语言>JavaScript > Http的持久连接和管线化

Http的持久连接和管线化

2018年08月27日  | 移动技术网IT编程  | 我要评论
【要点】 1. 什么是持久连接? 2. 什么是管线化? 【总结】 1.什么是持久连接? (keep alive模式) HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接);数据传输完成了保持TCP连接不断开(不发RST包、不四次握手),等待 ...

【要点】

1. 什么是持久连接?

2. 什么是管线化?

 

【总结】

1.什么是持久连接? (keep alive模式)


 http1.1规定了默认保持长连接(http persistent connection ,也有翻译为持久连接);数据传输完成了保持tcp连接不断开(不发rst包、不四次握手),等待在同域名下继续用这个通道传输数据;相反的就是短连接。

http 1.1版本支持持久连接 1.0版本不支持

与非持久连接的区别:

持久连接使客户端到服务器端连接持续有效,避免了重新建立连接

大大减少了连接的建立以及关闭时延。http连接是建立在tcp协议之上的,建立一条tcp连接需要三次握手,tcp连接关闭时需要四次挥手。这些都是需要时间的

 

2.什么是管线化

管线化机制须通过永久连接(persistent connection)完成,仅http/1.1支持此技术(http/1.0不支持)

在使用持久连接的情况下,某个连接消息的传递类似于

请求1 -> 响应1 -> 请求2 -> 响应2

管线化:某个连接上的消息变成了类似这样 

请求1 -> 请求2 -> 请求3 -> 响应1 -> 响应2 -> 响应3

【注】

  1. 那么持久连接和管线化的区别在于:

  持久连接的一个缺点是请求和响应式是顺序执行的,只有在请求1的响应收到之后,才会发送请求2,而管线化不需要等待上一次请求得到响应就可以进行下一次请求。实现并行发送请求。 

  2. 只有get和head要求可以进行管线化,而post则有所限制

  3. 初次创建连接时也不应启动管线机制,因为对方(服务器)不一定支持http/1.1版本的协议。

       4.http1.1要求服务器端支持管线化,但并不要求服务器端也对响应进行管线化处理,只是要求对于管线化的请求不失败,而且现在很多服务器端和代理程序对管线化的支持并不好,现代浏览器chrome和firefox默认并未开启管线化支持。

 

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网