Express 云运行实例如何感知来自HTTP2连接的多个请求?

Express 云运行实例如何感知来自HTTP2连接的多个请求?,express,http,http2,google-cloud-run,multiplexing,Express,Http,Http2,Google Cloud Run,Multiplexing,HTTP2具有此多路复用功能 从这个[答案](简单地说,多路复用允许您的浏览器在同一个连接上同时发出多个请求,并以任意顺序接收请求。)我们得到: 简单地说,多路复用允许浏览器在同一个连接上同时发出多个请求,并以任意顺序接收回请求 比方说,我将我的应用程序拆分为50个小型捆绑文件,以利用多路通信 我的服务器是一个express应用程序,托管在云运行实例中 以下是: 默认情况下,云运行容器实例可以同时接收多个请求(最多250个) 那么,如果5个用户同时点击我的应用程序,这是否意味着我的实例将在短时间

HTTP2
具有此多路复用功能

从这个[答案](简单地说,多路复用允许您的浏览器在同一个连接上同时发出多个请求,并以任意顺序接收请求。)我们得到:

简单地说,多路复用允许浏览器在同一个连接上同时发出多个请求,并以任意顺序接收回请求

比方说,我将我的应用程序拆分为50个小型捆绑文件,以利用多路通信

我的服务器是一个
express
应用程序,托管在云运行实例中

以下是:

默认情况下,云运行容器实例可以同时接收多个请求(最多250个)

那么,如果5个用户同时点击我的应用程序,这是否意味着我的实例将在短时间内达到最大值?

因为每个浏览器(来自5个用户)将发出50个请求(针对50个小型捆绑文件),总共产生250个请求

在同一连接上发生多路传输的事实会改变什么吗?它是如何工作的

这是否意味着我的云运行将感知5个连接,而我的express服务器将感知250个请求?我想我对这两个透视图(云运行实例和express服务器)中的
请求
表达式感到困惑。

请求是:

  • 在服务器和客户端(此处的浏览器)之间建立连接
  • 数据传输
  • 连接关闭
凭借HTTP2和websocket的流媒体容量,连接可能需要几分钟(最多1小时),您可以根据需要通过通道发送数据。1个连接=1个请求,5个连接=5个请求

但请记住,保持此连接处于打开状态并在其中处理数据会消耗后端的资源,并且您不能拥有几十个主动发送/接收数据的连接,您将使实例饱和。

一个“请求”是:

  • 在服务器和客户端(此处的浏览器)之间建立连接
  • 数据传输
  • 连接关闭
凭借HTTP2和websocket的流媒体容量,连接可能需要几分钟(最多1小时),您可以根据需要通过通道发送数据。1个连接=1个请求,5个连接=5个请求


但请记住,保持此连接打开并在其中处理数据会消耗后端的资源,并且您不能有几十个主动发送/接收数据的连接,您的实例将饱和。

在http2中,只有一个请求(一个TCP连接)可以获取所有文件。在同一时间(使用相同的连接)可以下载的文件数量是有限制的,但通常是100个左右。谢谢。那么我的实例将把它视为5个连接?我的express服务器将接收250个get请求?是吗?我想是的。如果流量被加密,云服务器只能查看和统计TCP连接,而不能查看和统计每个连接内部的情况。使用http1,每个文件必须创建一个单独的连接才能同时下载。@marzelin有道理!我认为你是对的。这一切都是通过SSL实现的。因此,只有当它到达
express
server时才会进行解密?SSL很久以前就被TLS取代了,正确的名称是TLS,尽管人们仍然在谈论SSL证书。说到云,这取决于配置。您可以将加密委托给云提供商-您的服务器可以获得解密的流量,CP的反向代理将负责保护该流量,或者您可以自己完成。在http2中,只有一个请求(一个TCP连接)可以获取所有文件。在同一时间(使用相同的连接)可以下载的文件数量是有限制的,但通常是100个左右。谢谢。那么我的实例将把它视为5个连接?我的express服务器将接收250个get请求?是吗?我想是的。如果流量被加密,云服务器只能查看和统计TCP连接,而不能查看和统计每个连接内部的情况。使用http1,每个文件必须创建一个单独的连接才能同时下载。@marzelin有道理!我认为你是对的。这一切都是通过SSL实现的。因此,只有当它到达
express
server时才会进行解密?SSL很久以前就被TLS取代了,正确的名称是TLS,尽管人们仍然在谈论SSL证书。说到云,这取决于配置。您可以将加密委托给云提供商—您的服务器可以获得解密的流量,CP的反向代理将负责保护它,或者您可以自己完成。