很抱歉,我认为这可能是一个愚蠢的问题,但是:
我对HTTP 2的理解是,您可以创建一个连接,如果需要的话可以建立TLS,然后升级到2,并对那个连接进行很多小的查询:之所以能够提高速度,是因为您没有重新建立连接和TLS。
如果为true,则涉及会话时-连接上的每个请求均被视为唯一请求和:。有cookie和标头,还是它们都被视为原始请求的子请求?
这是否会影响代理是否可以将来自客户端的请求合并到单个流中?
答案 0 :(得分:1)
我对HTTP 2的理解是创建一个连接,如果需要的话建立TLS,然后升级到2
不完全是。如果您使用TLS,则将使用HTTP / 2作为TLS协商的一部分进行协商。如果您不使用TLS,则可以升级,但浏览器仅支持基于HTTPS的HTTP / 2,因此是大多数用例。
当涉及会话时-连接上的每个请求都被视为唯一请求和:。有cookie和标头,还是它们都被视为原始请求的子请求?
每个请求都是HTTP / 2中称为流的一部分。这是一个独特的请求,它具有自己的Cookie和标头,并且与先前的请求无关(尽管请注意以下注意事项)。从概念上讲,HTTP / 1.1允许您在一个连接上发送多个唯一的,不相关的请求,这一点实际上没有什么不同,但是与HTTP / 1.1不同,由于{{ 3}}。
此图可能有助于解释它:multiplexing
这是否会影响代理是否可以将来自客户端的请求合并到单个流中?
我不确定您的意思吗?
注意:虽然HTTP / 2请求彼此独立并且HTTP在较高级别上仍然是无状态的,但是当您移至较低级别时,有一些地方可能会挑战其严格措辞,并且在技术上有些地方请求之间的连接。例如:
但是这些实际上只是连接级别的问题和效率。对于HTTP / 2用户(例如Web开发人员),每个HTTP / 2请求都与在HTTP / 1.1下一样独立,并且HTTP仍然是无状态的。