Java 将会话对象保留在数据库中是一种不好的做法吗?

Java 将会话对象保留在数据库中是一种不好的做法吗?,java,database,Java,Database,我最近读到RESTAPI不应该使用会话,因为它不再是无状态的。我想知道使用db表专门存储会话(与更常见的cookie方法相反)是否是一种不好的做法。如果是这样的话,为什么会出现这种不好的做法?它会导致什么问题?性能。管理过时的会话数据。无状态RESTAPI的思想是,每个客户机,无论以前的请求是什么,都可以执行新的请求。这意味着,如果你的API是基于会话的,而你的客户端(例如崩溃等),你必须处理所有这些情况。我认为Daniels的回答清楚了为什么REST应该是无状态的。关于为什么DB over C

我最近读到RESTAPI不应该使用会话,因为它不再是无状态的。我想知道使用db表专门存储会话(与更常见的cookie方法相反)是否是一种不好的做法。如果是这样的话,为什么会出现这种不好的做法?它会导致什么问题?

性能。管理过时的会话数据。无状态RESTAPI的思想是,每个客户机,无论以前的请求是什么,都可以执行新的请求。这意味着,如果你的API是基于会话的,而你的客户端(例如崩溃等),你必须处理所有这些情况。我认为Daniels的回答清楚了为什么REST应该是无状态的。关于为什么DB over Cookie(您需要维护会话的情况)-将所有会话数据保留在Cookie中会使任务变得繁重,从而增加总体响应时间(数据越多,时间越长)。如果您将会话数据存储在DB中(我更喜欢分布式缓存),那么您只能在请求/响应中发送和接收状态标记Id,从而保持负载轻。此外,如果您没有加密cookie数据,它将向用户公开。将其保留在数据库中会使其不可用。