共计 1844 个字符,预计需要花费 5 分钟才能阅读完成。
大家好,我是本期的微软 MVP 实验室研究院 – 李帅。在最近的 6 月 6 日,HTTP/3 曾经正式公布了 RFC, 而应用了 QUIC 新协定的 HTTP/3 是否让网站的速度更快,让咱们通过上面的测试,来看一看它的体现。
微软 MVP 实验室研究员
HTTP 简史
HTTP(超文本传输协定 1.0)的第一个正式版本在 1996 年实现。然而发现了一些问题, 依据作者的说法, HTTP/1.0 没有充分考虑分层代理、缓存、长连贯的需要和虚拟主机的影响。所以 HTTP/1.1 在一年后,也就是 1997 年公布, 同时它也是应用最宽泛的版本。
在 HTTP/1.1 中, 浏览器通过 TCP 连贯一次只能下载一个文件, 如果一个页面须要 10 个 js 文件, 那么这些文件将会按程序下载。一个文件的提早就会阻塞前面的其余内容, 也就是咱们常说的 队首阻塞。
在 18 年后, HTTP 协定迎来了更新, HTTP/2 (RFC 7540) 公布。HTTP/2 的一大特点是多路复用。引入了二进制帧和流机制,容许应用单个 TCP 连贯, 通过 Stream 并行下载资源, 进步了传输效率。
另外还有头部压缩 HPACK 算法, 缩小反复 header 数据的传输。
然而, HTTP/2 尽管解决了 http 的队首阻塞, 然而依然会受到 TCP 队首阻塞的影响。
事实上,在丢包率高的环境中,HTTP/1.1 性能更好,因为浏览器关上了多个并行 TCP 连贯!
▌应用 HTTP/3 和 QUIC 实现真正的多路复用
HTTP/2 和 HTTP/3 之间的次要区别在于它们应用的传输协定。HTTP/3 应用了 QUIC 新协定来代替 TCP 协定,而 QUIC 基于 UDP 开发, 和 TCP 不一样是, UDP 并不需要三次握手, 联合 TLS1.3, 也为 0-RTT 加密传输带来了可能, HTTP/3 还带来了新的头部压缩算法 QPACK。
测试内容
▌站点
一个前端动态站点, 蕴含了 10 个 js 文件, 19 个图片, 一些 css 和 font, 总共 36 个资源, 总大小 6.6 M。
▌服务器
Azure Standard B2s, 2 核 4G, Linux (Ubuntu 20.04), Web
Server 应用了 Caddy(之前尝试了 nginx, 目前应用 HTTP/3 须要编译 nginx-quic 的代码, 折腾一通后仍有问题, 遂放弃), 相比之下, Caddy 开启 HTTP/3 就简略, 另外主动的 https 证书也很不便。另外设置了 Cache-Control: “no-store”, 禁用缓存,
HTTP/3 设置了 0-RTT。
▌地点
客户端位于上海, 服务端在美国旧金山, 两地间隔大略 10000 公里。
▌三个版本
HTTP/1.1:https://sfh1.lixiaoshuai.com/
HTTP/2:https://sfh2.lixiaoshuai.com/
HTTP/3:https://sfh3.lixiaoshuai.com/
每个站点应用 Chrome 别离拜访 10 次,而后记录耗时。
测试后果
最初,咱们看一下测试后果,HTTP/1.1 均匀在 3500 ms, HTTP/2 均匀在 2500 ms, 而 HTTP/3 均匀在 1300 ms, 能够看到 HTTP/3 带来的性能晋升还是很显著的。
总结
在往年的 6 月 6 号,IETF(互联网工程工作小组)
正式公布了 HTTP/3 的 RFC,残缺的 RFC 超过了 20000 字,十分具体的解释了 HTTP/3。
如您所见,HTTP/3 很快! 像 Google 和 Facebook 这种大型公司曾经开始应用 HTTP/3 提供服务了, web server 也踊跃拥抱新协定,并提供了实验性的反对。而 QUIC 是否取代应用了几十年的 TCP? 让咱们刮目相待!
相干链接
https://kinsta.com/blog/http3/
https://en.wikipedia.org/wiki…
https://en.wikipedia.org/wiki…
微软最有价值专家(MVP)
微软最有价值专家是微软公司授予第三方技术专业人士的一个寰球奖项。29 年来,世界各地的技术社区领导者,因其在线上和线下的技术社区中分享专业知识和教训而取得此奖项。MVP 是通过严格筛选的专家团队,他们代表着技术最精湛且最具智慧的人,是对社区投入极大的激情并乐于助人的专家。MVP 致力于通过演讲、论坛问答、创立网站、撰写博客、分享视频、开源我的项目、组织会议等形式来帮忙别人,并最大水平地帮忙微软技术社区用户应用
Microsoft 技术。更多详情请登录官方网站:
https://mvp.microsoft.com/zh-cn
长按辨认二维码
关注微软开发者 MSDN
点击返回微软开发者站点~