为什么我们说网络服务是无国籍的?
答案 0 :(得分:48)
它们不会在客户端的请求之间保持任何状态。即,该服务不知道也不关心后续请求来自已经/未发出先前请求的客户端。基本上,它是“给我这条信息并忘记我”,它将责任放在客户端以维持任何状态。
答案 1 :(得分:18)
因为Web服务基于HTTP,这是一种无状态协议。
引用wikipedia:
无状态服务器是一个服务器 将每个请求视为独立的 与任何无关的交易 先前的请求。
即。每个请求都与前一个请求无关:即使我们使用某些“技巧”(例如cookie)来保留请求之间的某些状态,这也不是协议定义的内容。
答案 2 :(得分:4)
因为HTTP是无状态的。服务器完成客户端请求后,不会存储任何信息以供将来的事务使用。
答案 3 :(得分:4)
Web服务的概念是建模RPC(远程过程调用)又称为函数。因此,您不需要使用会话。此外,无状态的想法来自于将Web服务器扩展到服务器场的需求,从而实现更高的容量。
但是,使用状态的选择取决于技术和开发人员。没有什么可以阻止您创建ASP.Net Web服务并在方法定义中设置“EnableSession = True”。
这在一些基本身份验证方案中很有用,即自行开发的表单身份验证或为短期“工作流”提供自动关联。 (但我强烈建议您考虑更多现代技术将提供更高级别的安全性和性能)。
答案 4 :(得分:2)
请求彼此独立。