我知道HTTP是无状态协议。但是对HTTP协议的无状态没有正确的解释。为什么HTTP协议是无状态的?当HTTP协议有状态时会发生什么?
答案 0 :(得分:3)
对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基础架构中。