HTTP/2对比HTTP/1.1,特性是什么?是如何解决队头阻塞与压缩头部的?

本文深入探讨了HTTP/1.1协议的性能缺陷,如队头阻塞、明文传输和无状态,并介绍了HTTP/2的新特性,包括二进制传输、Header压缩、多路复用、服务端Push和提高安全性。尽管HTTP/2在某些情况下仍可能存在队头阻塞问题,但其多路复用技术显著提高了网络性能。
摘要由CSDN通过智能技术生成

引言

本文主要通过以下四个方面介绍,循序渐进走进HTTP/2:

  • HTTP/1.1发明以来发生了哪些变化?
  • HTTP/1.1 协议的性能缺陷
  • HTTP/2 新特性
  • HTTP/2 遗留问题

HTTP/1.1发明以来发生了哪些变化?

近年来,如果你仔细观察那些最流行的网站首页所需要下载的资源的话,会发现一个非常明显的趋势:

  • 消息变大 :从几 KB 大小的消息,到几 MB 大小的消息;
  • 页面资源变多 :从每个页面不到 10 个的资源,到每页超 100 多个资源;
  • 内容形式变多样 :从单纯到文本内容,到图片、视频、音频等内容;
  • 实时性要求变高 :对页面的实时性要求的应用越来越多;

正如下图所示,从 2011 年以来, 传输数据大小与平均请求资源数量不断持续增长,并没有减缓的迹象(绿色:传输数据大小,红色:平均请求资源数量):

自从 1997 年 HTTP/1.1 发布以来,我们已经使用 HTTP/1.x 相当长一段时间了,但近几年内容的爆炸式成长使得 HTTP/1.1 越来越无法满足现代网络的需求了

HTTP/1.1 协议的性能缺陷

1. 高延迟:页面访问速度下降

虽然近几年来网络带宽增长非常快,然而我们却并没有看到网络延迟有对应程度的降低,这主要是由于队头阻塞 (Head-Of-Line Blocking)问题导致

HTTP/1.1 版引入了管道机制(pipelining),即在同一个TCP连接里面,客户端可以同时发送多个请求,进一步改进了 HTTP 协议的效率

但这要求服务端必须按照请求发送的顺序返回响应,当顺序请求多个文件时,其中一个请求因为某种原因被阻塞时,在后面排队的所有请求也一并被阻塞,这就是队头阻塞 (Head-Of-Line Blocking)

队头阻塞导致再打的带宽无法被充分利用

因此 人们尝试过以下办法来解决队头阻塞问题:

  • 使用多个域名 :将同一个页面的资源分散到不同域名,提升并发连接上限,因为
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值