【问题标题】:What if HTTP protocol is stateful? [closed]如果 HTTP 协议是有状态的怎么办? [关闭]
【发布时间】:2018-05-17 02:57:12
【问题描述】:

我知道 HTTP 是一种无状态协议。但是对于 HTTP 协议的无状态性并没有适当的解释。为什么 HTTP 协议是无状态的?当 HTTP 协议有状态时会发生什么?

【问题讨论】:

  • 如果老鼠飞了会怎样?这不是“会发生什么”的问题。 HTTP 不是有状态的。时期。这就是协议的设计方式。
  • 可以通过同样的方式。stackoverflow.com/questions/5836881/…

标签: http protocols


【解决方案1】:

对于 HTTP 协议的无状态性没有正确的解释。

您可能错过了RFC 7230,它是定义 HTTP 协议的文档之一。请参阅下面的一些引用:

HTTP 是一种无状态的请求/响应协议,由 通过可靠的传输交换消息 - 或 会话层“连接”。 [...]

HTTP 被定义为无状态协议,这意味着每个请求 可以单独理解消息。许多实现依赖于 关于 HTTP 的无状态设计,以便重用代理连接或 跨多个服务器动态负载平衡请求。 [...]


当 HTTP 协议有状态时会发生什么?

不会发生:HTTP 不是有状态的,也不会是

RFC 6265 定义了 HTTP 中的一些状态管理机制,例如 cookie,但它不会使 HTTP 有状态。

RFC 7230 中所述,HTTP/1.1 支持“持久连接”,允许通过单个连接承载多个请求和响应,但它也不会使 HTTP 成为有状态的任何方式的协议。

如果您需要有状态协议,您可以查看RFC 6455 中定义的 WebSockets。它可以与 HTTP共存,并且可以部署在 HTTP 基础架构中。

【讨论】:

    猜你喜欢
    • 2012-10-23
    • 2016-07-10
    • 2011-08-15
    • 2012-09-29
    • 2015-10-11
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 2022-10-24
    相关资源
    最近更新 更多