禁用无状态web服务的HTTPSession



我想知道是否可以为仅处理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,有一个指南可以遵循。

最新更新