`
lijackly
  • 浏览: 71340 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

关闭浏览器&会话session关闭——关系

阅读更多
    但第一次访问一个站点的时候,网站服务器会在响应头内加上Set-Cookie:PHPSESSID=.....(php服务器),或Set-Cookie JSESSIONID=....(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重写,但也只能实现会话cookie。
分享到:
评论

相关推荐

    python 重新使用一个Webdriver的解决方法(csdn)————程序.pdf

    - **浏览器会话**:通过驱动代理创建一个新的浏览器会话,每个会话都有一个唯一的`sessionId`,用于标识和跟踪。 2. 解决方案概述: - **记录Session ID**:在启动WebDriver后,我们需要保存当前会话的`executor_...

    webgoat——Session Management Flaws会话管理缺陷

    当用户成功登录后,服务器会生成一个唯一的Session ID,通常通过Cookie返回给客户端(用户的浏览器)。这个Session ID成为了服务器识别用户身份的关键。 【会话劫持】 会话劫持是一种安全攻击,攻击者通过获取或...

    ASP.NET源码——[电子商务].Net Session购物车示例.zip

    这些数据将与用户的浏览器会话关联,直到会话过期或被显式清除。 在电子商务购物车示例中,通常会有以下几个主要部分: 1. **商品展示页面**:用户可以看到商品列表,每个商品都有添加到购物车的选项。当用户点击...

    php5的session详解

    1. **浏览器会话**:指的是从打开浏览器窗口到关闭窗口的这段时间。 2. **用户交互会话**:指的是用户从登录到退出应用或完成某项任务的整个过程。 3. **网络通信会话**:在计算机网络中,Session 常指建立连接后...

    php session操作类

    Session是服务器端的一种存储方式,它允许开发者在用户浏览器关闭前跨页面地跟踪用户状态。当用户访问网站时,服务器会为该用户生成一个唯一的Session ID,并通过cookie存储在客户端。之后,每次请求时,客户端都会...

    阿里P7大牛实战演练到源码透析——分布式环境session丢失爬坑记

    4. **客户端Cookie禁用或失效:** 客户端浏览器设置问题或网络故障可能导致Cookie无法正常传输,从而使得服务端无法识别用户会话。 #### 三、Session管理方案 1. **基于Cookie的Session管理:** 这是最常见的...

    Cookie与Session机制

    为了解决这一问题,开发了两种主要的会话跟踪技术——Cookie和Session。 #### 二、Cookie机制 ##### 1. Cookie的概念 Cookie是一种简单的机制,用于在客户端存储信息以便后续的请求中使用。它最初是由Netscape...

    43_说说你们的分布式session方案是啥?怎么做的?.zip

    分布式Session方案是现代大型Web应用中解决用户会话管理的关键技术。随着互联网应用规模的不断扩大,单体应用逐渐被拆分为多个微服务,这使得传统的Session管理方式——将Session存储在单个应用服务器的内存中——变...

    简单了解Session

    4. 当用户会话结束(如关闭浏览器、超过预设的会话超时时间),服务器会清除对应的Session数据。 Session与Cookie相比,具有以下优点: - 数据安全性更高,因为用户数据存储在服务器端,不直接暴露给客户端。 - ...

    用django设置session过期时间的方法解析

    SESSION_EXPIRE_AT_BROWSER_CLOSE False:会话cookie可以在用户浏览器中保持有效期。True:关闭浏览器,则Cookie失效。 SESSION_COOKIE_DOMAIN 生效站点 SESSION_COOKIE_NAME cookie中保存session的名称 Session...

    django框架之cookie/session的使用示例(小结)

    四、会话跟踪技术——Session 与Cookie相比,Session将数据存储在服务器端,更安全。Django提供了内置的session框架,通过设置session_key来关联用户会话。在请求中,Django会自动处理session的读写,开发者只需操作...

    有关session的技术原理及其应用

    当浏览器向服务器发送请求时,会携带该Session ID,从而允许服务器识别特定的用户会话。 - **URL重写**:如果客户端不支持Cookies或禁用了Cookies,服务器可以通过修改URL的方式,在URL中加入Session ID,以此保持...

    java基础会话与状态讲解

    会话指的是用户与服务器之间的一系列交互活动,通常从用户打开浏览器并请求某个Web资源开始,直到用户关闭浏览器结束。 ##### 1.1 会话的概念 - **定义**:用户打开浏览器,通过浏览器访问服务器上的多个Web资源...

    深入探討Session(IntraWeb)

    在IntraWeb中,Session的处理流程始于浏览器向服务器发送请求。当用户首次访问网站时,服务器会检查请求是否包含AppID——这是一个在URL后附加的特殊字符串,由两部分组成:前8个字符表示一个对象指针,后16个字符...

    TestCookie.java(csdn)————程序.pdf

    与`Session`不同,`Cookie`存储在用户的本地浏览器,而`Session`数据则存储在服务器端,这使得`Cookie`的生命周期更依赖于用户是否关闭浏览器,而`Session`的生命周期通常由服务器控制。 在给定的`TestCookie.java`...

    Session详细解答

    尽管Cookie机制可以解决基本的状态管理问题,但对于更复杂的应用场景,如需要存储大量用户数据或执行安全性更高的操作时,则需要使用更高级的会话管理机制——**session**。 ##### Session的工作原理 1. **创建...

    韩顺平Java -会话技术总结

    默认情况下,Cookie与浏览器会话关联,关闭浏览器后消失。但可以通过`setMaxAge()`设置其生命周期,单位为秒。 **1.5 有效路径** `setPath()`方法用于设定Cookie的有效路径,只有在指定路径下的请求才会携带该...

    javaWEB之session

    理论上,只要用户不关闭浏览器,每次HTTP请求都可以通过SessionID找到对应的会话数据,从而保持会话的一致性。然而,在实际应用中,用户可能会清空Cookie,导致SessionID丢失,从而破坏会话的一致性。 ##### 2.4 ...

    8_cookie和session1

    而Session通常在用户关闭浏览器或主动销毁时失效,生命周期相对较短。这种设计是为了提高安全性,避免用户在离开电脑后仍保持登录状态。 总的来说,Cookie和Session各有优势和适用场景。Cookie适合于存储不敏感的...

    JAVA遇见HTML——JSP篇

    一个session对应于用户的整个会话,直到会话过期或用户关闭浏览器。 6. **Session的生命周期**:session有一个默认的超时时间,过了这个时间,session将被销毁。开发者可以通过`session.setMaxInactiveInterval(int...

Global site tag (gtag.js) - Google Analytics