• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

简单的HTTP协议(2.7)持久连接节省通信量

极客笔记 Geekerstar 10个月前 (06-25) 287次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

HTTP 协议的初始版本中, 每进行一次 HTTP 通信就要断开一次 TCP连接。

以当年的通信情况来说, 因为都是些容量很小的文本传输, 所以即使这样也没有多大问题。

可随着 HTTP 的普及, 文档中包含大量图片的情况多了起来。

比如, 使用浏览器浏览一个包含多张图片的 HTML页面时, 在发送请求访问 HTML页面资源的同时, 也会请求该 HTML页面里包含的其他资源。

因此, 每次的请求都会造成无谓的 TCP 连接建立和断开, 增加通信量的开销。

2.7.1 持久连接

为解决上述 TCP 连接的问题, HTTP/1.1 和一部分的 HTTP/1.0 想出了持久连接(HTTP Persistent Connections, 也称为 HTTP keep-alive 或HTTP connection reuse) 的方法。

持久连接的特点是, 只要任意一端没有明确提出断开连接, 则保持 TCP 连接状态。

持久连接的好处在于减少了 TCP 连接的重复建立和断开所造成的额外开销, 减轻了服务器端的负载。

另外, 减少开销的那部分时间, 使HTTP 请求和响应能够更早地结束, 这样 Web 页面的显示速度也就相
应提高了。

在 HTTP/1.1 中, 所有的连接默认都是持久连接, 但在 HTTP/1.0 内并未标准化。

虽然有一部分服务器通过非标准的手段实现了持久连接,但服务器端不一定能够支持持久连接。

毫无疑问, 除了服务器端, 客户端也需要支持持久连接。

2.7.2 管线化

持久连接使得多数请求以管线化(pipelining) 方式发送成为可能。

从前发送请求后需等待并收到响应, 才能发送下一个请求。

管线化技术出现后, 不用等待响应亦可直接发送下一个请求。

这样就能够做到同时并行发送多个请求, 而不需要一个接一个地等待响应了。

比如, 当请求一个包含 10 张图片的 HTML Web 页面, 与挨个连接相比, 用持久连接可以让请求更快结束。

而管线化技术则比持久连接还要快。

请求数越多, 时间差就越明显。


丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:简单的HTTP协议(2.7)持久连接节省通信量
喜欢 (0)
[247507792@qq.com]
分享 (0)
Geekerstar
关于作者:
本站技术支持

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00