Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

http2 多路复用是什么, 原理是什么【热度: 353】 #529

Open
yanlele opened this issue Aug 22, 2023 · 0 comments
Open

http2 多路复用是什么, 原理是什么【热度: 353】 #529

yanlele opened this issue Aug 22, 2023 · 0 comments
Labels
网络 web 网络相关 腾讯 公司标签
Milestone

Comments

@yanlele
Copy link
Member

yanlele commented Aug 22, 2023

关键词:http2多路复用、http2多路复用原理、http2帧和流、http2流的优先级、http2头部压缩

多路复用是指在HTTP/2中,多个请求/响应可以同时在同一个TCP连接上进行传输和处理的机制。

在HTTP/1.1中,每个请求都需要建立一个独立的TCP连接,导致连接的建立和关闭开销很大。而在HTTP/2中,多个请求可以通过同一个TCP连接同时进行,避免了建立和关闭连接的开销。

多路复用的实现原理主要包括以下几个方面:

  1. 帧和流:在HTTP/2中,通信的最小单位是帧(frames),每个帧包含了一个特定类型的数据,例如请求头、响应头、请求体、响应体等。帧属于一个或多个流(stream),每个流都有唯一的标识符。多个流可以同时在同一个TCP连接上进行传输。

  2. 流的优先级:在HTTP/2中,每个流都可以设置优先级,用于指定处理请求的顺序。服务器可以根据流的优先级来决定响应的优先级,从而更好地利用带宽资源。

  3. 头部压缩:为了减少头部信息的传输开销,HTTP/2使用了一种称为HPACK的压缩算法。HPACK对头部信息进行压缩,并在通信双方之间维护一个共享的头部表,用于存储已经发送或接收过的头部信息。这样就可以减少重复的头部信息传输,提高传输效率。

通过上述机制,HTTP/2实现了多路复用。多个请求/响应可以同时在同一个TCP连接上进行传输,提高了传输效率,减少了连接建立和关闭的开销。

@yanlele yanlele added 网络 web 网络相关 腾讯 公司标签 labels Aug 22, 2023
@yanlele yanlele added this to the milestone Aug 22, 2023
@yanlele yanlele changed the title http2 多路复用是什么, 原理是什么【热度: 153】 http2 多路复用是什么, 原理是什么【热度: 353】 Aug 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
网络 web 网络相关 腾讯 公司标签
Projects
None yet
Development

No branches or pull requests

1 participant