Java web应用程序中使用会话的主要用例
我一直试图避免使用会话。我使用了SpringSecurity或其他让用户登录应用程序的方法,我认为这是使用会话的主要用例 但是其他的用例是什么呢?你能列出那些最重要的吗?为什么我能够在不使用会话的情况下开发甚至复杂的应用程序 是不是因为我使用的是SpringMVC,除了登录之外,实际上不需要使用会话 编辑:伙计们,这个问题问的是用例。。。大多数答案解释了课程的目的。若我们总结一些用例,我们可以肯定地说,何时使用数据库或会话来维护会话状态。。。 你不记得有什么具体的场景需要讨论吗?过去几年:)Java web应用程序中使用会话的主要用例,java,session,spring-mvc,Java,Session,Spring Mvc,我一直试图避免使用会话。我使用了SpringSecurity或其他让用户登录应用程序的方法,我认为这是使用会话的主要用例 但是其他的用例是什么呢?你能列出那些最重要的吗?为什么我能够在不使用会话的情况下开发甚至复杂的应用程序 是不是因为我使用的是SpringMVC,除了登录之外,实际上不需要使用会话 编辑:伙计们,这个问题问的是用例。。。大多数答案解释了课程的目的。若我们总结一些用例,我们可以肯定地说,何时使用数据库或会话来维护会话状态。。。 你不记得有什么具体的场景需要讨论吗?过去几年:) 例
例如,某些会话状态可能在某个点/事件之后变得持久。在本例中,我从一开始就使用数据库 我认为你可以做任何你想做的事情,而不需要在会话上存储任何东西 我通常使用会话来避免在客户端和服务器之间传递状态(以id为例)和当我不想向客户端发送敏感信息时(即使是以加密形式),因为这可能是一个安全问题 避免使用会话的其他方法有:
- 在数据库中存储某些状态,例如购物车,而不是在会话中,即使购物车在一定时间后被丢弃
- 将状态存储在cookie中,例如用于用户自定义
所谓敏感信息,我的意思是,想象一下在前面的示例中,一旦用户发送了他的信用卡详细信息,您就不应该以任何格式(甚至加密)将该信息返回给用户。我知道这有点偏执,但这就是安全:)。我认为你可以做任何你想做的事情,而不需要在会话上存储任何东西 我通常使用会话来避免在客户端和服务器之间传递状态(以id为例)和当我不想向客户端发送敏感信息时(即使是以加密形式),因为这可能是一个安全问题 避免使用会话的其他方法有:
- 在数据库中存储某些状态,例如购物车,而不是在会话中,即使购物车在一定时间后被丢弃
- 将状态存储在cookie中,例如用于用户自定义
所谓敏感信息,我的意思是,想象一下在前面的示例中,一旦用户发送了他的信用卡详细信息,您就不应该以任何格式(甚至加密)将该信息返回给用户。我知道这有点偏执,但这就是安全:)。会话是跨多个请求(例如多个无状态HTTP请求)维护会话状态的一种方法 还有其他实现会话状态的方法,例如,将身份验证令牌或某个合适的会话id存储为cookie,并将会话id的存储维护为会话状态。(本质上,复制应用程序服务器在提供会话时正在执行的操作。)
您不需要使用会话意味着您的应用程序不需要会话状态,或者您以不同的方式实现了会话状态。例如,您的应用程序可能使用身份验证令牌(比如cookie)并将所有状态更改持久化到数据库。通过这种安排,不需要会话状态。会话是跨多个请求(例如,多个无状态HTTP请求)维护会话状态的一种方法 还有其他实现会话状态的方法,例如,将身份验证令牌或某个合适的会话id存储为cookie,并将会话id的存储维护为会话状态。(本质上,复制应用程序服务器在提供会话时正在执行的操作。)
您不需要使用会话意味着您的应用程序不需要会话状态,或者您以不同的方式实现了会话状态。例如,您的应用程序可能使用身份验证令牌(比如cookie)并将所有状态更改持久化到数据库。有了这种安排,就不需要会话状态。嗨,你可以拿购物车为例,因为Http是无状态协议,它不维护发送请求的用户的状态 例如。 如果一个用户向易趣发送购买相机的请求,几分钟后另一个用户发送购买笔记本电脑的请求 但由于http是无状态协议,所以服务器无法分离用户发送的请求,并且可能会将笔记本电脑的账单提供给第一个用户 所以通过ses