We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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 提供的一个功能,在同一个 tcp 连接中客户端和服务端都可以同时发送多个请求或回应。而且两端可以通过帧中的标识知道属于哪个请求。通过这个技术,可以避免 HTTP 旧版本中的队头阻塞问题,极大的提高传输性能。
HTTP/2 是一个二进制协议, 每一个请求和响应都有一个唯一的 id,叫做流 id。每个请求和响应的数据会被划分为帧。帧是二进制数据块,流id用于标识一个帧属于哪个请求或响应。流是具有相同流id的帧的集合。
要发出HTTP请求,客户端首先将请求划分为二进制帧,并将请求的流ID分配给帧。然后,它与服务端建立TCP连接。连接成功后客户端开始向服务端发送帧数据。一旦服务端准备好响应,它就将响应划分为帧,并为响应帧提供相同的响应流id。服务端以帧的形式发送响应。
在 HTTP/2 中给请求流和响应流分配唯一 id 是必须的,因为多个不同的请求会使用同一个 TCP 连接发送。所以流 id 可以标识出一个帧属于哪个请求或响应。这样就能同步的发送多个 http 请求而不造成阻塞。
一个 TCP 连接只能向同一个源发送 HTTP 请求,对于多个源需要建立多个 TCP 连接。
一旦建立了 TCP 连接,对该源所有的请求都将通过这个 TCP 连接完成。多个 HTTP/2 的请求会被划分成帧,并分配它们各自的流 ID。来自客户端多个请求流的帧是异步发送到,服务端的响应也是异步发送的。因此如果一个响应会花费大量的时间,其他的响应并不会被阻塞。客户端通过流 id 来区分和排列帧。
请求和响应都是并行的。当客户端发送请求的帧时,服务端同时也会返回响应的帧。
对特定源的所有请求完成后,TCP 连接将保持打开一段时间,然后关闭。
流(或请求)可以具有优先级值。使用优先级值 server 决定需要为请求分配多少内存、CPU 时间和带宽。默认情况下,服务器不按任何顺序异步发送多个请求的帧,并并行处理它们。但是在请求时带上额外的 priority 信息可以强制服务器在其他响应之前发送响应的帧。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
简单讲解一下 http2 多路复用
多路复用是 http2 提供的一个功能,在同一个 tcp 连接中客户端和服务端都可以同时发送多个请求或回应。而且两端可以通过帧中的标识知道属于哪个请求。通过这个技术,可以避免 HTTP 旧版本中的队头阻塞问题,极大的提高传输性能。
帧和流
HTTP/2 是一个二进制协议, 每一个请求和响应都有一个唯一的 id,叫做流 id。每个请求和响应的数据会被划分为帧。帧是二进制数据块,流id用于标识一个帧属于哪个请求或响应。流是具有相同流id的帧的集合。
要发出HTTP请求,客户端首先将请求划分为二进制帧,并将请求的流ID分配给帧。然后,它与服务端建立TCP连接。连接成功后客户端开始向服务端发送帧数据。一旦服务端准备好响应,它就将响应划分为帧,并为响应帧提供相同的响应流id。服务端以帧的形式发送响应。
在 HTTP/2 中给请求流和响应流分配唯一 id 是必须的,因为多个不同的请求会使用同一个 TCP 连接发送。所以流 id 可以标识出一个帧属于哪个请求或响应。这样就能同步的发送多个 http 请求而不造成阻塞。
多路复用
一个 TCP 连接只能向同一个源发送 HTTP 请求,对于多个源需要建立多个 TCP 连接。
一旦建立了 TCP 连接,对该源所有的请求都将通过这个 TCP 连接完成。多个 HTTP/2 的请求会被划分成帧,并分配它们各自的流 ID。来自客户端多个请求流的帧是异步发送到,服务端的响应也是异步发送的。因此如果一个响应会花费大量的时间,其他的响应并不会被阻塞。客户端通过流 id 来区分和排列帧。
请求和响应都是并行的。当客户端发送请求的帧时,服务端同时也会返回响应的帧。
对特定源的所有请求完成后,TCP 连接将保持打开一段时间,然后关闭。
帧中的其他信息
流(或请求)可以具有优先级值。使用优先级值 server 决定需要为请求分配多少内存、CPU 时间和带宽。默认情况下,服务器不按任何顺序异步发送多个请求的帧,并并行处理它们。但是在请求时带上额外的 priority 信息可以强制服务器在其他响应之前发送响应的帧。
The text was updated successfully, but these errors were encountered: