我想知道是否可以为仅处理web服务RESTful的应用程序服务器禁用HTTPSession
。
我不知道是否有专门的应用程序服务器或servlet容器设计用于处理微型RESTful web服务。
我认为完全禁用会话概念将带来以下优势:
- 更好的性能
- 在会话中保存数据没有风险,打破了RESTful Web服务的无状态概念
- 类加载器加载的类较少
- 会话中未保存任何未使用的信息(例如会话id、会话状态)
- 对同步块的访问更少(我认为至少在Session中,lastAccessedTime的值会为每个请求更新,这应该在同步块中完成)
如果没有应用程序服务器或servlet容器可以做到这一点:是否有其他Java引擎可以在不创建类似于HttpSession的东西的情况下处理微服务?
您不能在servlet容器(如Tomcat)上禁用HttpSession。
也许Play框架是实现您的设计的好方法。
您不能完全禁用HttpSession
。
但是您可以确保不会在应用程序中创建HttpSession
。要做到这一点,请确保以下方法没有被调用(由自己或您使用的框架调用):
HttpServletRequest.getSession()
HttpServletRequest.getSession(boolean)
与true
微服务是一种架构设计原则。如果你想使用Spring,有一个指南可以遵循。