Web services Web服务是无状态的吗?

Web services Web服务是无状态的吗?,web-services,Web Services,为什么我们说web服务是无状态的?它们不会在来自客户端的请求之间保持任何状态。i、 e.服务不知道,也不关心,后续请求来自客户,而该客户之前没有提出请求。基本上,这是一个“给我这段信息,忘掉我”的过程,这让客户端有责任维护任何状态。请求彼此独立。因为HTTP是无状态的。服务器完成客户端请求后,不会存储任何信息以供将来的事务使用。因为web服务基于HTTP,这是一种无状态协议 引述: 无状态服务器是指 将每个请求视为独立的请求 与任何交易无关的交易 以前的请求 i、 e.每个请求都与前一个请求无关

为什么我们说web服务是无状态的?

它们不会在来自客户端的请求之间保持任何状态。i、 e.服务不知道,也不关心,后续请求来自客户,而该客户之前没有提出请求。基本上,这是一个“给我这段信息,忘掉我”的过程,这让客户端有责任维护任何状态。

请求彼此独立。

因为HTTP是无状态的。服务器完成客户端请求后,不会存储任何信息以供将来的事务使用。

因为web服务基于HTTP,这是一种无状态协议

引述:

无状态服务器是指 将每个请求视为独立的请求 与任何交易无关的交易 以前的请求


i、 e.每个请求都与前一个请求无关:即使我们使用一些“技巧”,例如cookies,来在请求之间保留一些状态,这也不是协议定义的东西。

web服务的概念是对RPC(远程过程调用)或函数建模。因此,您不需要使用会话。此外,无状态的想法来自于需要将web服务器扩展到服务器场,从而实现更高的容量

然而,使用状态的选择取决于技术和开发人员。没有任何东西可以阻止您创建ASP.Net Web服务并在方法定义中设置“EnableSession=True”


这在一些基本的身份验证场景中很有用,例如,自制表单身份验证,或者为短期的“工作流”提供自动关联。(但我强烈要求你考虑更多的现代技术将提供更高的安全性和性能)。

我评论的版本短得多,基本上说“因为他们不坚持状态。”我删除我的评论加上这是一个赞成票。我也有同感。这就是我更新它的原因。@brian:EWS 2010以后的订阅流媒体怎么样?这是否会保持某种类型的状态,例如从EWS web服务器到Exchange服务器的开放TCP连接?我问的原因是因为表现。同样对于一般请求,在从EWS web服务器到exchange服务器的会话保持打开状态方面,服务器上是否存在开销?无状态协议和无状态web服务之间有很大区别。当底层协议是无状态的时,应用程序可以是有状态的(使用您提到的“技巧”)。此外,web服务不一定意味着HTTP。例如,SOAP可以将SMTP作为传输层使用。我不太愿意将SMTP SOAP服务称为“web服务”。有很多类型的服务,但对我来说,web服务=HTTP或HTTPS。SMTP在网络出现之前就已经存在了。所以我认为帕斯卡的相关性很好。