这个文章很详细:http://ljf19860123.blog.163.com/blog/static/9722835200705114952410/
session是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端,通过SessionID来区分不同的客户,session是以Cookie或URL重写为基础。默认使用Cookie来实现,系统会创造一个名为JSESSIONID的输出Cookie,或称为"Session Cookie",以区别Persistent Cookies(通常所说的Cookie).Session Cookie是存储在浏览器中,并不是写在硬盘上的,但是把浏览器的Cookie禁止后,使用response对象的encodeURL或encodeRedirectURL方法编码URL,WEB服务器会采URL重写的方式传递Sessionid,用户就可以在地址栏看到jsessionid=A09JHGHKHU68624309UTY84932之类的字符串。
通常Session Cookie是不能跨窗口使用,当用户新开了一个浏览器进入相同的页面时,系统会赋予用户一个新的SessionID,这样信息共享的目的就达不到,此时可以把SessionID保存在Persistent Cookie中,然后再新的窗口中读出来,就可以得到上一个窗口的SessionID了,这样通过Session Cookie和Persistent Cookie的结合,实现了跨窗口的会话跟踪。
session的工作原理
就session的实现而言,好像是这样的:
(1)当有Session启动时,服务器生成一个唯一值,称为SessionID(好像是通过取进程ID的方式取得的)。
(2)然后,服务器开辟一块内存,对应于该SessionID。
(3)服务器再将该SessionID写入浏览器的cookie(一些在网页的源代码中有所体现)。
(4)服务器内有一进程,监视所有Session的活动状况,如果有Session超时或是主动关闭,服务器就释放该内存块。
(5)当浏览器连入IIS(服务器)时并请求的ASP(脚本语言)内用到Session时,IIS(服务器)就读浏览器Cookie中的SessionID。
(6)然后,服务检查该SessionID所对应的内存是否有效。
(7)如果有效,就读出内存中的值。
(8)如果无效,就建立新的Session。
注意:
(1)在大浏览量的网站,Session并不保险,我们过去的网站就经常碰到存在Session中得值不正确(可能出现重复的Session ID)。
(2)Session ID不能从硬盘上的Cookie文件获得,如果想在客户端获知自己的Session ID,只能通过Javascrīpt来读取。
Cookie和会话状态
做BS开发,这两个概念必不可少,先来个大概了解,没有实际应用很难深入,深入看参考地址!
什么是 Cookie?
Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。用户每次访问站点时,Web 应用程序都可以读取 Cookie 包含的信息。 Cookie 的基本工作原理如果用户再次访问站点上的页面,当该用户输入 URLwww.*****.com时,浏览器就会在本地硬盘上查找与该 URL 相关联的 Cookie。如果该 Cookie 存在,浏览器就将它与页面请求一起发送到您的站点。
Cookie 有哪些用途?
最根本的用途是:Cookie 能够帮助 Web 站点保存有关访问者的信息。更概括地说,Cookie 是一种保持Web 应用程序连续性(即执行“状态管理”)的方法.使 Web 站点记住您.
什么是会话Session?
当用户访问您的站点时,服务器会为该用户创建唯一的会话,会话将一直延续到用户访问结束。
分享到:
相关推荐
### j2ee实验二:学习使用Session和Cookie #### 实验背景与目标 在现代Web应用开发中,理解和掌握会话管理和用户认证是至关重要的。本实验旨在通过一系列实际操作来帮助学生熟悉J2EE环境下Session和Cookie的工作...
### 会话cookie和持久cookie的区别 会话cookie与持久cookie的主要区别在于它们的有效期: - **会话cookie**:没有设置过期时间,其生命周期仅限于当前的浏览器会话。一旦浏览器关闭,这类cookie将被自动清除。 - **...
完全不用session和cookie的验证码,样式自己设置,自己设置字符数
ASP.NET的Session和Cookie是Web开发中的两种关键的用户状态管理技术。它们允许开发者存储和检索用户特定的信息,从而提供个性化的用户体验。了解并熟练掌握这两者,对于任何ASP.NET Web应用程序的开发者来说都至关...
在Web开发中,Session和Cookie是常见的用户状态管理工具,用于跟踪用户在网站上的行为。 Session是服务器端存储用户状态的一种方式。当用户登录网站后,服务器会在服务器端为该用户创建一个唯一的Session ID,并将...
### Session与Cookie的区别和联系 #### 一、概念解析 - **Cookie**:Cookie是一种小型的数据文件,由服务器端生成并发送给用户浏览器,浏览器在本地(如用户的硬盘)保存该文件,然后每一次请求同一网站时都会把该...
JAVA 通过 Session 和 Cookie 实现网站自动登录的技术 在网站开发中,实现自动登录功能是非常重要的,JAVA 通过 Session 和 Cookie 实现网站自动登录的技术是其中的一种方法。本文将详细介绍如何使用 Session 和 ...
在“源码”和“工具”标签的提示下,我们可以推断文章可能涉及了Cookie和Session的实现细节,或许还涵盖了如何在实际项目中使用它们,或者分析了一些常见的库和框架如何处理Session和Cookie。例如,Spring框架提供了...
JavaWeb 使用 Session 和 Cookie 实现登录认证 Session 和 Cookie 是 Web 开发中两种常用的技术,分别用于实现用户会话和客户端数据存储。本文将详细介绍如何使用 Session 和 Cookie 实现登录认证。 什么是 ...
在实际应用中,通常结合使用Cookie和Session。Cookie用于存储用户偏好设置、非敏感的小量数据,而Session用于存储敏感信息或大量数据。同时,考虑到移动设备和隐私政策,开发者需要谨慎处理Cookie的使用,避免过度...
**Session** 和 **Cookie** 是Web开发中用于保持客户端与服务器之间会话状态的重要技术。由于HTTP协议本身是无状态的,即服务器无法自动记录客户端的状态信息,因此需要通过Session和Cookie等技术手段来实现对用户...
### JAVA通过Session和Cookie实现网站自动登录 在现代Web应用开发中,用户认证与授权是极为重要的环节之一。为了提供良好的用户体验,很多网站都提供了自动登录功能,即用户首次登录后,在一定时间内再次访问该网站...
【Session和Cookie】是Web开发中的两种重要技术,用于在客户端和服务器之间管理用户状态。它们主要用于解决HTTP协议无状态的特性,即每次请求都是独立的,无法记住用户信息。 **1. Session** Session是在服务器端...
本文将从多个角度对Session和Cookie进行详细对比,并解释它们各自的特点及应用场景。 #### 一、基本概念 1. **Session**: - **定义**:Session是一种服务器端技术,用于在用户与服务器之间维护会话状态。 - **...
### 对Session和Cookie的深刻理解 #### Session与Cookie的基本概念 在Web开发中,了解Session和Cookie是非常重要的,因为它们是实现用户会话管理和状态跟踪的关键技术。简单来说,Session和Cookie都用于存储用户...
在.NET开发中,Session和Cookie是两种常用的用户状态管理机制,尤其在实现网站的自动登录功能时,它们扮演着至关重要的角色。本文将详细介绍这两种技术及其在实现自动登录中的应用。 首先,Session是服务器端存储...
主要介绍了thinkphp中session和cookie无效的解决方法,涉及针对BOM头的分析与删除方法,具有一定的参考借鉴价值,需要的朋友可以参考下
**标题解析:** "关于Session和Cookie的一个PPT" 指的是一个关于网络应用程序中的会话管理和状态跟踪技术的演示文稿。Session和Cookie是Web开发中的关键概念,用于在用户与服务器之间保持状态。 **描述分析:** ...