- 浏览: 189100 次
- 性别:
- 来自: 深圳
文章分类
最新评论
一、客户端用cookie保存了sessionID
客户端用cookie保存了sessionID,当我们请求服务器的时候,会把这个sessionID一起发给服务器,服务器会到内存中搜索对应的sessionID,如果找到了对应的 sessionID,说明我们处于登录状态,有相应的权限;如果没有找到对应的sessionID,这说明:要么是我们把浏览器关掉了(后面会说明为什 么),要么session超时了(没有请求服务器超过20分钟),session被服务器清除了,则服务器会给你分配一个新的sessionID。你得重 新登录并把这个新的sessionID保存在cookie中。
在没有把浏览器关掉的时候(这个时候假如已经把sessionID保存在cookie中了)这个sessionID会一直保存在浏览器中,每次请求的时候都会把这个sessionID提交到服务器,所以服务器认为我们是登录的;当然,如果太长时间没有请求服务器,服务器会认为我们已经所以把浏览器关掉了,这个时候服务器会把该sessionID从内存中清除掉,这个时候如果我们再去请求服务器,sessionID已经不存在了,所以服务器并没有在内存中找到对应的 sessionID,所以会再产生一个新的sessionID,这个时候一般我们又要再登录一次。
二、客户端没有用cookie保存sessionID
这 个时候如果我们请求服务器,因为没有提交sessionID上来,服务器会认为你是一个全新的请求,服务器会给你分配一个新的sessionID,这就是 为什么我们每次打开一个新的浏览器的时候(无论之前我们有没有登录过)都会产生一个新的sessionID(或者是会让我们重新登录)。
当我们一旦把浏览器关掉后,再打开浏览器再请求该页面,它会让我们登录,这是为什么?我们明明已经登录了,而且还没有超时,sessionID肯定还在服 务器上的,为什么现在我们又要再一次登录呢?这是因为我们关掉浏览再请求的时候,我们提交的信息没有把刚才的sessionID一起提交到服务器,所以服 务器不知道我们是同一个人,所以这时服务器又为我们分配一个新的sessionID,打个比方:浏览器就好像一个要去银行开户的人,而服务器就好比银行, 这个要去银行开户的人这个时候显然没有帐号(sessionID),所以到银行后,银行工作人员问有没有帐号,他说没有,这个时候银行就会为他开通一个帐 号。所以可以这么说,每次打开一个新的浏览器去请求的一个页面的时候,服务器都会认为,这是一个新的请求,他为你分配一个新的sessionID。
sessionid是保存在客户端的cookie中的,名叫,aspnet_sessionId,如果配置文件禁用了不用cookie来保存的话,sessionid会通过url来传递,如果客户端都禁用了cookie,那就脑残了,每次浏览器都是新的请求了!
发表评论
文章已被作者锁定,不允许评论。
-
使用SignalR构建一个最基本的web聊天室
2015-01-06 15:09 765使用SignalR,可以使用服务器消息推送到客户端,件demo ... -
一台服务器访问另外一台服务器的共享目录
2014-12-19 10:50 605情况:A服务器的asp.ne程序需访问B服务器的共享目录, ... -
windows7 IIS7报错:如果要使用托管的处理程序,请安装 ASP.NET
2014-12-19 10:31 2413aspx 常见错误 CS0016: 未能写入输出文件“c:/ ... -
windows7 IIS7报错:如果要使用托管的处理程序,请安装 ASP.NET
2014-12-19 10:30 662windows7 IIS7报错:如果要使用托管的处理程序,请 ... -
Cookie小知识
2014-12-17 11:02 598如果cookie设置了过期时间,cookie就会保存在硬盘中 ... -
一个避免用户重复点击按钮造成重复数据的小技巧
2013-01-13 16:13 1222<script> //启用 ... -
SWFupload 上传控件的使用的使用
2012-12-02 16:17 866-- 首先说个解决 ie兼容的标签 <meta ht ... -
评论的延迟加载
2012-11-10 18:34 782看verycd、cnbeta的评论区域很奇怪,每次看完了正文, ... -
进程管理运用,防盗链,权限限制
2012-11-05 22:58 591图片防止盗链 void Appl ... -
进程外session配置
2012-11-05 22:57 878进程外session StateServer 对象必须可序列 ... -
分页底层实现(超原理)
2012-10-16 22:19 956--样式 .paginator{ font: 12px ... -
生命周期请求过程
2012-10-07 14:40 740客户端第一步:用户在地址栏里面输入地址,或者是提交表单第二步: ... -
C#,FTP上传的代码 FtpWebRequest
2012-08-24 22:46 961private void Upload(string file ... -
.net ajax控件实现百度,谷歌智能搜索
2012-08-08 22:11 897首先创建一个webservice,不懂也没关系,会用 ... -
asp.net几种开源上传控件,flash,ajax版,支持多文件
2012-08-08 22:11 19431、AspnetUpload 地址:http://www.a ... -
js和C#中的进制转换方法
2012-08-08 22:12 780在.net Framework中,System.Convert ... -
下拉框下的树形结构数据的绑定
2012-08-12 22:12 851privatevoid BindDropDownLi ... -
Repeater 控件实现无刷新分页
2012-08-12 22:13 1279本文讲述的是如何利用 XMLHttpRequest ... -
.net文件上传的各种操作及创建文件夹和删除上传的文件方法
2012-08-12 22:15 933aspx中<tr><td align=& ... -
使用HTML,CSS快速导出数据到Excel
2012-08-12 22:16 1270一般是导出到txt,csv或excel。txt和cs ...
相关推荐
虽然Session和Transaction都涉及到状态的管理,但它们之间存在本质的区别: - **Transaction**:事务,主要用于数据库操作中,确保一系列操作要么全部成功,要么全部失败,保证数据的一致性和完整性。 - **Session*...
3. **Session ID的传递**:服务器会在响应中包含Session ID,通常是以cookie的形式。客户端浏览器会自动接收这个cookie,并将其存储起来。 4. **后续请求**:客户端在接下来的每次请求中都会附带上这个Session ID。...
4. **共享SessionID**:由于Session数据是通过SessionID关联的,所以关键在于将ASP.NET的SessionID传递给ASP。这可以通过在HTTP头中添加自定义字段或者在URL中编码SessionID来实现。在ASP.NET页面中,你可以获取...
之后,每当用户发送请求时,浏览器都会将这个Session ID发送回服务器,服务器根据Session ID找到相应的会话数据。 需要注意的是,Session数据存储在服务器内存中,因此对于大量用户并发访问的情况,可能会占用大量...
Session是另一种会话跟踪技术,它在服务器端存储用户信息,每个用户会话对应一个唯一的Session ID。当用户首次访问时,服务器创建一个Session对象,分配Session ID并通过Cookie返回给客户端。之后,客户端每次请求...
Session 文件的名称格式通常是 `sess_` 加上 Session ID。 **4. Session 生命周期** 从初始化 Session 开始,直到用户关闭浏览器或者 Session 过期这段时间被称为 Session 的生命周期。在这段时间内,用户的状态...
虽然Session和Cookie都能实现用户状态跟踪,但它们有本质区别。Cookie数据存储在客户端,可能受到安全威胁;而Session数据存储在服务器,相对安全。Cookie容量有限,一般不超过4KB,而Session容量较大。此外,Cookie...
这里使用Guid写到cookie里,注意把这个cookie设置成httponly的,当然如果你在程序里使用了Session,那么Session.SessionID就可以用来唯一标识一个用户了,Session.SessionId本质是在cookie……
Session本质上是一个存储结构,通常由服务器端的内存或数据库存储用户会话信息。当客户端(浏览器)访问服务器时,服务器为每个用户创建一个唯一的Session ID,这个ID通过Cookie或者URL重写等方式返回给客户端。...
当一个用户访问Web应用时,服务器会创建一个Session对象,并为其分配一个唯一的Session ID。这个ID通常被存储在客户端的Cookie中,或者在URL中隐式传递,使得服务器能够识别和追踪同一个用户的不同请求。 #### ...
尽管 Cookie 和 Session 都用于跟踪用户状态,但它们有着本质的区别: 1. **存储位置**:Cookie 存储在客户端,而 Session 存储在服务器端。 2. **安全性**:由于 Cookie 存储在客户端,因此容易受到攻击。Session ...
尽管这可能增加网络传输的数据量,但在IFrame环境下,这是必要的,因为没有Cookie,SessionID就无法在主页面与IFrame之间传递。 3. **P3P头的添加:** 对于IE浏览器,需要在服务器端添加P3P头,例如`Response.Add...
#### Session的本质及其在Web开发中的角色 Session,中文常译为“会话”,在Web开发领域中扮演着至关重要的角色,尤其是在维护客户端与服务器之间的交互状态方面。Session的概念源远流长,但其核心在于“保持状态”...
1. **创建Session**:当用户第一次访问网站时,服务器为该用户创建一个唯一的会话ID,并将其存储在服务器端的一个数据结构中,如内存或数据库。 2. **发送Session ID**:服务器通过HTTP响应头中的`Set-Cookie`字段...
之后的每次请求,客户端都会携带这个session ID,服务器通过这个ID查找并维护用户的状态信息。 #### 五、理解javax.servlet.http.HttpSession 在Java Web开发中,`javax.servlet.http.HttpSession`是一个非常重要...
如果存在就去遍历服务端的session文件,找到与这个sessionid相对应的文件,文件中的键值便是sessionid,值为当前用户的一些信息。以后所有的请求都会交换这个Session ID,进行有状态的会话。 Session与Cookie的区别...
- **定义**:Session机制是一种服务器端状态管理技术,服务器为每个用户会话分配一个唯一的会话ID,并在服务器内存中维护该会话的相关数据。 - **工作原理**: - 服务器为每个新会话生成一个会话ID。 - 会话ID通过...
Session实质上是服务器为每个独立的用户会话分配的一个唯一标识符,通常称为SessionID。每当用户首次连接到服务器时,系统会建立一个新的Session,并分配一个唯一的SessionID给用户。这个SessionID对于服务器来说...
- `SESSION_COOKIE_NAME='sessionid'`:指定Cookie的名字,默认为`sessionid`。 - `SESSION_COOKIE_AGE=1209600`:设置Session的有效期(单位:秒),默认为两周。 - `SESSION_EXPIRE_AT_BROWSER_CLOSE=False`:...
Cookie和Session都是用于维护用户会话的重要工具,但它们之间存在本质的区别。选择合适的方法取决于具体的应用需求。Cookie适合于简单的情况,而Session则更适合处理复杂和敏感的数据。在实际开发中,理解这些概念并...