HTTP2 / HTTP3基本特性,都用到了哪些协议

HTTP2相比于HTTP1.1,做到了向下兼容,用HPACK算法和Huffman编码(压缩算法),利用静态表压缩header头部传输字段大小,以此提高传输速率;

但是HTTP2依然存在对头阻塞的问题, 只不过是在TCP层面造成的阻塞;

HTTP/2 需要限制 连接时长或者请求次数;

HTTP/2 实现了 Stream 并发;

可以根据资源的渲染顺序来设置 Stream 的优先级,从而提高用户体验;

HTTP/2 是基于 TCP 协议来传输数据的,TCP 是字节流协议,TCP 层必须保证收到的字节数据是完整且连续的,这样内核才会将缓冲区里的数据返回给 HTTP 应用,那么当「前 1 个字节数据」没有到达时,后收到的字节数据只能存放在内核缓冲区里,只有等到这 1 个字节数据到达时,HTTP/2 应用层才能从内核中拿到数据,这就是 HTTP/2 队头阻塞问题。

=================================我是分割线====================================

相比较HTTP2,HTTP3使用了UDP协议代替了TCP协议,还基于 UDP 协议在「应用层」实现了 QUIC 协议,它具有类似 TCP 的连接管理、拥塞窗口、流量控制的网络特性,相当于将不可靠传输的 UDP 协议变成“可靠”的了,所以不用担心数据包丢失的问题。

QUIC 协议的优点有很多,这里举例几个,比如:

无队头阻塞,stream之间不会再因为对头堵塞而互相影响传输,单个stream只会影响它自己本生这个stream流的传输进度,等到某个stream流丢失的包数据重新发送,这一整个stream流数据才能被应用层接收读取;

更快的连接建立,将传输效率提升至0-RTT;

连接迁移,HTTP2当设备无线和数据流量切换时,会重置TCP链接,HTTP3通过QUIC协议,只要通过连接ID即可完成无缝连接迁移;

HTTP/3 的 QPACK 通过两个特殊的单向流来同步双方的动态表,解决了 HTTP/2 的 HPACK 队头阻塞问题。

本文为 今天也想见到你 博客文章,转载无需和我联系,但请注明来自 今天也想见到你 博客 0925.wang
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇