【发布时间】:2016-02-14 10:35:42
【问题描述】:
与最初的无状态 HTTP/1 不同,HTTP/2 有许多有状态的组件。
HTTP/2 的这些部分是有状态的:
- Header blocks refer to a stateful unsigned 31-bit integer called a stream identifier
- Frames also reference the same stateful stream identifier
- opportunistic encryption also depends on state since TLS is stateful
HTTP/2 中是否还有其他有状态的部分?
【问题讨论】:
-
@Farside 这个问题比较老。此外,这个问题是询问哪些组件是有状态的,而不是协议是否是无状态的。 HTTP/2 是有状态的,这个问题假设读者已经知道这一点,或者可以从第一句话中合理地推断出这一点。
-
@Farside 另外,您是当前答案的作者,我怀疑这会引起进一步的偏见。
-
你只是在推测这个主题,对 OSI 模型没有了解。 HTTP/1.0 不是有状态的。 HTTP/2 也是如此,因为应用层仍然是无状态的……但是根据 RFC,它确实有一些有状态的组件。 HTTP/2 连接是在 TCP 连接之上运行的应用层协议。不要将它与会话层和传输层混合。
-
@Farside。你错了50%。 HTTP/1.0 是无状态的。 原始规范没有定义有状态的机制。你说得对,它是无国籍的。添加 cookie 在原始 HTTP 规范之上添加状态。 HTTP/2.0 是有状态的。 HTTP/2.0 在其标准中定义了新的有状态机制。您不必有状态地使用它,但它仍然存在。我不知道如何与您沟通。这是一个简单的问题。请不要混蛋,说“不了解 OSI 模型”之类的话。这不适合互联网公民。