当你第一次访问一个网站的时候,网站服务器会在响应头内加上Set-Cookie:PHPSESSID=nj1tvkclp3jh83olcn3191sjq3(php服务器),或Set-Cookie JSESSIONID=nj1tvkclp3jh83olcn3191sjq3(java服务器)信息,此信息是服务器随机生成的,放在服务器内存里,为了标识唯一的客户端用户,内容不会重复,这就是sessionid.
当浏览器得到这个sessionid会将它放在自己的进程内存里,这里不同的浏览器会有所不同,IE进程间不能共享这个sessionid,也就是新开一个IE将不能共享这个sessionid;而Firefox进程间可以共享.然后你继续发请求给这个网站的时候,浏览器就会把这个sessionid放在请求头里发送给该服务器了,这样服务器得到sessionid后再和自己内存里存放的sessionid对比锁定客户端,从而区分不同客户端,完成会话.
可以看出如果用这种方式,当用户在会话的过程中关闭浏览器结束进程,则这个sessionid将消失,如果用户又打开浏览器想继续这次会话的时候,就会因为发送的请求中没有这个sessionid而使服务器无法辨别该把那个session信息给他,注意(这个时候服务器端的sessionid和sessionid所指向的session都还存在,只是没有正确的sessionid和它匹配而占用服务器内存,只有session过期或服务器重启才释放内存).
上面这种方式叫会话cookie,把cookie放在浏览器内存里,只能在这个浏览器的内存范围里完成会话,是一种不长久的方式,为了能长久会话,就出现了持久化cookie,把cookie固化在用户的计算机上,现在的cookie不单单能存放sessionid,还能放用户信息,样式表信息等.
如果用户禁止了所有cookie的使用,那么会话cookie和持久化cookie都不能用了,有个方案也可以解决问题,就是URL重写,这里要说下的就是URL重写只能实现会话cookie的效果,持久会话实现不了.
分享到:
相关推荐
临时Cookie会在浏览器关闭后自动删除,而持久化Cookie则会根据设定的有效期存在一段时间。 #### Session机制 Session是在服务器端维护的一种会话管理机制,用于跟踪用户在一个会话过程中的状态。当一个用户连接到...
### Cookie机制和Session机制 #### 一、基本概念与背景 在现代Web应用中,为了实现用户认证、个性化设置等功能,通常需要在客户端与服务器之间维持一段时间内的状态信息。然而,HTTP协议本质上是无状态的,这意味...
通过以上内容,我们可以清楚地了解到Cookie与Session的基本概念及其区别,同时对于会话Cookie与持久Cookie的不同也有了更深入的理解。在实际应用中,合理选择和使用这两种机制可以帮助开发者更好地管理用户的会话...
每次用户请求,服务器根据Session ID找到对应的Session,从而获取购物车状态,实现状态的持久化。 **三、Cookie与Session的比较** 1. **安全性**:Session比Cookie更安全,因为数据存储在服务器端,不会暴露给...
这种方式适用于需要持久化存储少量数据的场景。 - **Session**:是一种服务器端存储技术,服务器为每个用户创建一个独立的会话(Session),并在服务器端保存用户的会话数据。客户端通过某种方式(通常是Cookie)...
下面详细讲解 Tomcat_Session 的持久化原理和实现机制。 一、Session 的使用 Session 是一种用来跟踪用户状态的机制。Servlet 容器通过在客户端浏览器中保存一个 Session ID 来跟踪 Session。调用 session.getID()...
- **会话Cookie (Session Cookie)**: 不设定过期时间,仅在用户会话期间有效。 - **持久Cookie (Persistent Cookie)**: 设定了过期时间,在该时间内无论浏览器是否重启都会保持有效。 **用途**: Cookie常用于个性化...
如果未设置过期时间,则默认为会话Cookie,在用户关闭浏览器后即被删除。 - **大小限制**:每个Cookie的大小通常不超过4KB。 - **Session**:Session是服务器为了跟踪用户的会话而创建的一个对象,用来存储特定...
Cookie 和 Session 是两种常见的用户身份验证和会话管理机制,它们在Web开发中扮演着重要角色,用于跟踪用户的在线状态和存储用户数据。下面将详细阐述它们的异同以及如何在集群环境中进行共享。 首先,Cookie 是一...
在Web开发中,session cookie是服务器用来跟踪用户状态的一种方式,特别是在无状态的HTTP协议上实现会话持久化。这个工具可能提供创建、读取、更新和删除cookie的功能,帮助开发者更方便地处理用户的登录状态、个性...
会话cookie与持久cookie的主要区别在于它们的有效期: - **会话cookie**:没有设置过期时间,其生命周期仅限于当前的浏览器会话。一旦浏览器关闭,这类cookie将被自动清除。 - **持久cookie**:通过设置过期时间(如...
在Java Web开发中,Cookie和Session是两种非常重要的会话管理技术,它们主要用于跟踪和管理用户的状态信息。本文将深入探讨Cookie和Session的工作原理、应用场景以及如何在Java Web项目中进行有效利用。 **Cookie**...
每当用户访问某个网站时,服务器可以设置或读取Cookie中的内容,从而实现用户信息的持久化存储。Cookie的数据量较小(通常限制在4KB以内),并且随着每一次HTTP请求自动发送到服务器。 - **优点**:使用简单方便...
有几种类型的Cookie,包括会话Cookie(Session Cookie)和持久化Cookie。会话Cookie在浏览器关闭后消失,而持久化Cookie则可以设定过期时间,即使浏览器关闭,再次打开时依然存在。 Session,另一方面,是在服务器...
3. **存储**:Session数据通常存储在内存中,服务器会定期将活跃Session持久化到硬盘,以防服务器重启导致数据丢失。 4. **生命周期**:Session有一个预设的超时时间,超过这个时间未收到客户端的请求,服务器会...
以上就是使用`SessionListener`、持久化`Session`和`Springmvc拦截器`实现单点登录的基本原理和实现步骤。通过这样的设计,可以有效地提升用户体验,同时确保系统的安全性。在实际项目中,还需要根据具体需求进行...
在实际开发中,还会使用Session和Token等技术来配合Cookie实现更安全的身份验证。Session存储在服务器端,而Token则通常用于无状态的API交互,它们都与Cookie结合使用,以提高系统的安全性。 综上所述,Cookie机制...
- 对于大容量的会话数据,可以考虑定期将部分不活跃的会话数据持久化到磁盘,以节省内存资源。 通过以上步骤,我们可以实现一个高效的分布式会话追踪系统,既能保证用户状态的连续性,又能适应大规模的并发请求。...
**二、会话Cookie与持久Cookie的区别** 1. **会话Cookie**:若未设置过期时间,Cookie生命周期仅限于当前浏览器会话,关闭浏览器窗口后即消失,不保存在硬盘上。 2. **持久Cookie**:设置过期时间的Cookie会被保存...