你们在实际项目中看到什么样的服务器?
1) Web 服务必须是无状态的:基本上你必须在每个请求中发送用户名/密码,每个请求都必须使用 HTTPS,如果需要,我将每次都验证并加载用户对象。
2) Web 服务的会话:就像在 Web 容器中一样,因此我至少可以保存经过身份验证的用户对象并具有类似于会话 ID 的内容,因此我不需要在每个请求上都进行身份验证、加载和检查用户。
3)Sticky Service(跨请求的持久服务):https ://jax-ws.dev.java.net/nonav/2.1/docs/statefulWebservice.html
我了解有状态服务(以及 Web 应用程序会话)的可伸缩性问题,但有时您必须拥有某种状态,例如购物车。但是您也可以将此状态放入数据库(将后端用作一种会话argh)或将整个状态传递给客户端(客户端负责重新发送整个购物车)。
事实是,至少对于 Web 应用程序,会话在许多情况下都有很大帮助。如果您的系统接受“如果他的 Web 服务器发生故障,用户必须重新开始他正在做的任何事情”,则可以忽略可伸缩性问题,或者如果这是不可接受的,您可以尝试使用会话集群。
Web 服务的情况如何?我倾向于得出结论,Web 服务与 Web 应用程序非常不同,并且接受选项 1)(总是无状态的),但很高兴听到基于实际项目经验的其他意见。