众所周知,HTTP是无状态的。这意味着,服务器端将不会存储有关客户端的任何信息。但是当我们用C#编写代码时,我们可以使用Http Session为用户客户端存储一些数据,例如,在线商店应用程序的订单信息。这是矛盾吗?
我认为,解释可能是“无状态”一词是指每个连接。每次收到请求时,以及发送响应时,连接都会被关闭并销毁。
你们能告诉我为什么这不矛盾吗?谢谢。
要更新的信息:
核心HTTP协议本身是无状态的(如果忽略持久连接,缓存等),但实现HTTP的服务器和基于HTTP构建的Web应用程序不一定是无状态的
答案 0 :(得分:2)
众所周知,HTTP是无状态的。这意味着,服务器端将不会存储有关客户端的任何信息。
如果"我们"知道,然后"我们"是错的。
核心HTTP协议本身是无状态的(如果忽略持久连接,缓存等),但实现HTTP的服务器和基于HTTP构建的Web应用程序不一定是无意义的无状态。实际上,有关于传递会话识别信息的相关标准;例如使用cookies。你甚至不需要饼干。会话令牌可以作为URL的一部分传递......
请提供一些或多个来源的链接,让您相信HTTP服务器不会存储有关客户端的信息......这样我们就可以了解您的误解。
我认为,解释可能是“无状态”一词是指每个连接。每次收到请求时,以及发送响应时,连接都会被关闭并销毁。
这或多或少是正确的。 (对于持久连接,在发送响应时不会破坏连接。)
但是,这并不支持你的断言会话与HTTP无状态相矛盾。会话存在于核心HTTP协议之上的概念级别。