我可以看到有状态协议可以减少类似于cookie的拼接“模拟状态”的情况,但是测试变得更加困难以确保你的实现是正确的并且重新连接和会话继续可能非常难处理。
是否总是使用无状态协议被认为是更好的做法?还是这确实与领域有关?我认为处理有状态协议时身份验证会变得更容易,但是否有其他原因应该使用有状态协议?
我可以看到有状态协议可以减少类似于cookie的拼接“模拟状态”的情况,但是测试变得更加困难以确保你的实现是正确的并且重新连接和会话继续可能非常难处理。
是否总是使用无状态协议被认为是更好的做法?还是这确实与领域有关?我认为处理有状态协议时身份验证会变得更容易,但是否有其他原因应该使用有状态协议?
无状态的优点:
无状态协议更易于集群化,因为在后续请求中从不需要将状态从一个服务器转移到另一个服务器。
我个人不太熟悉有状态与无状态的所有设计问题,但我知道在经历了15年的之前版本为无状态后,NFSv4是有状态的,因此显然无状态成为了NFS设计者的一个重要限制。
通过几分钟的谷歌搜索,可以找到几篇文章和博客,讨论NFSv4的有状态性;这对于涉及的一些设计问题应该是有趣的阅读。
另一个无状态协议的好处是更容易处理服务器故障转移情况和/或群集/负载平衡情况。
有状态的更好。这样你就不必一直发送状态了。协议也会变得更简单。