`
qwex9iao
  • 浏览: 177892 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

cookie与session的关系

    博客分类:
  • html
阅读更多
为什么会有cookie呢,大家都知道,http是无状态的协议,客户每次读取web页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息,那么要怎么才能实现网上商店中的购物车呢,session就是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端,通过 SessionID来区分不同的客户,session是以cookie或URL重写为基础的,默认使用cookie来实现,系统会创造一个名为 JSESSIONID的输出cookie,我们叫做session cookie,以区别persistent cookies,也就是我们通常所说的cookie,注意session cookie是存储于浏览器内存中的,并不是写到硬盘上的,这也就是我们刚才看到的JSESSIONID,我们通常情是看不到JSESSIONID的,但是当我们把浏览器的cookie禁止后,web服务器会采用URL重写的方式传递Sessionid,我们就可以在地址栏看到 sessionid=KWJHUG6JJM65HS2K6之类的字符串。
        明白了原理,我们就可以很容易的分辨出persistent cookies和session cookie的区别了,网上那些关于两者安全性的讨论也就一目了然了,session cookie针对某一次会话而言,会话结束session cookie也就随着消失了,而persistent cookie只是存在于客户端硬盘上的一段文本(通常是加密的),而且可能会遭到cookie欺骗以及针对cookie的跨站脚本攻击,自然不如 session cookie安全了。
        通常session cookie是不能跨窗口使用的,当你新开了一个浏览器窗口进入相同页面时,系统会赋予你一个新的sessionid,这样我们信息共享的目的就达不到了,此时我们可以先把sessionid保存在persistent cookie中,然后在新窗口中读出来,就可以得到上一个窗口SessionID了,这样通过session cookie和persistent cookie的结合我们就实现了跨窗口的session tracking(会话跟踪)。
        在一些web开发的书中,往往只是简单的把Session和cookie作为两种并列的http传送信息的方式,session cookies位于服务器端,persistent cookie位于客户端,可是session又是以cookie为基础的,明白的两者之间的联系和
区别,我们就不难选择合适的技术来开发web service了
cookie
Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID 为标识符来存取服务器端的Session存储空间。而SessionID这一数据则是保存到客户端,用Cookie保存的,用户提交页面时,会将这一 SessionID提交到服务器端,来存取Session数据。这一过程,是不用开发人员干预的。所以一旦客户端禁用Cookie,那么Session也会失效。

服务器也可以通过URL重写的方式来传递SessionID的值,因此不是完全依赖Cookie。如果客户端Cookie禁用,则服务器可以自动通过重写URL的方式来保存Session的值,并且这个过程对程序员透明。

可以试一下,即使不写Cookie,在使用request.getCookies();取出的Cookie数组的长度也是1,而这个Cookie的名字就是JSESSIONID,还有一个很长的二进制的字符串,是SessionID的值。
Cookie是客户端的存储空间,由浏览器来维持。
分享到:
评论

相关推荐

    Cookie、Session和Token三者的区别及使用

    ### Cookie、Session与Token的区别及使用详解 #### 一、Cookie **定义**: Cookie是一种用于在客户端保持状态的方案。简单来说,当你访问一个网站时,该网站可能会在你的计算机上留下一些信息(如用户名、密码等),...

    Cookie与Session深入剖析图示

    在Web开发中,Cookie和Session是两种非常重要的用户身份验证和会话管理机制。...下面将对Cookie和Session进行深入剖析。...通过"Cookie与Session深入剖析图示"的学习,可以直观地了解两者的工作流程,加深理解。

    session与cookie的区别和联系?

    ### Session与Cookie的区别和联系 #### 一、概念解析 - **Cookie**:Cookie是一种小型的数据文件,由服务器端生成并发送给用户浏览器,浏览器在本地(如用户的硬盘)保存该文件,然后每一次请求同一网站时都会把该...

    cookie_session知识点

    1. **依赖关系**:Session通常依赖于Cookie中的jsessionid来标识用户。当服务器找不到客户端的jsessionid或者对应的Session过期或已被销毁,服务器会创建新的Session对象。 2. **创建时机**: - 第一次请求时,...

    cookie机制和session机制的区别

    ### Cookie机制与Session机制的区别及关系 在现代网络应用中,服务器端与客户端之间的状态保持是至关重要的,尤其是在无状态的HTTP协议下。Cookie机制与Session机制是两种常用的状态管理方式,它们各自拥有独特的...

    session实质就是cookie

    ### Session与Cookie关系详解 #### 一、会话管理概览 在Web开发中,会话管理是一项重要的技术,它负责维护用户与服务器之间交互的数据。通常,这种交互包括用户的登录状态、购物车中的商品信息等。为了实现这些...

    Session、Cookie、Token的关系。以及Cookie的局限性

    而对于对安全性要求较高的场景,结合使用Session和Token可以兼顾安全与效率。 总结来说,Session、Cookie和Token都是用来处理用户身份验证和状态管理的重要工具,它们各有优缺点。理解它们之间的关系以及Cookie的...

    C# 对Cookie、Session、Cache的操作辅助类

    在开发Web应用时,Cookie、Session和Cache是三个非常关键的概念,它们都与数据存储和管理有关,但各有其特性和应用场景。本篇文章将深入探讨C#中对这三个概念的操作辅助类,以及如何利用它们来提升Web应用的性能和...

    session和cookie的关系

    介绍下cookie和session之间是咋交互的。原理是啥。

    深入理解ServletJSP之“Cookie和Session原理”很详细

    ##### Session与Cookie的关系 虽然Session是服务器端的概念,但它通常依赖于Cookie来传递session ID。如果用户的浏览器禁用了Cookie,那么大多数Web应用将无法正常工作,因为它们无法追踪用户的会话。 总结来说,...

    session和cookie详解

    ### Session与Cookie详解 #### 一、Session与Cookie的基本概念 **Session** 和 **Cookie** 是Web开发中用于保持客户端与服务器之间会话状态的重要技术。由于HTTP协议本身是无状态的,即服务器无法自动记录客户端的...

    Cookie&Session&JSP(十二).zip

    例如,可以使用`response.addCookie(Cookie cookie)`添加Cookie,`request.getCookies()`获取所有Cookie,`session.setAttribute(String name, Object value)`设置Session属性,`session.getAttribute(String name)`...

    cookie session 的概念和基本用法

    5. **Session与Cookie的关系**:Session依赖于Cookie来标识用户会话。服务器通过在Cookie中设置一个唯一标识符(如JSESSIONID)来关联特定的Session。当浏览器关闭,依赖Cookie的Session也会失效,因为失去了识别...

    带你了解session和cookie作用原理区别和用法

    - **创建与检测**:首次请求时,如果服务器发现客户端请求中没有Session ID,会创建新的Session并返回ID,后续请求以此ID进行跟踪。 3. **使用方法** - **Cookie**:在PHP中,可以通过`setcookie()`函数创建...

    session和cookie的区别

    Session与Cookie的关系 尽管Session和Cookie看似独立,但它们之间存在密切联系。通常情况下,Session依赖于Cookie来传递session ID。然而,如果用户的浏览器禁用了Cookie功能,那么可以采用其他方法(如URL重写)...

    Session和Cookie区别.docx

    ### Session与Cookie的区别详解 #### 一、存储位置的不同 - **Cookie**:Cookie是一种小型文本文件,由服务器端生成并发送给客户端浏览器,浏览器将其保存在本地(通常是用户的计算机或移动设备上)。每当浏览器向...

    session与cookie

    2. **依赖关系**:默认情况下,Session ID是通过Cookie传递给客户端的,但也可以通过URL重写等方式实现。 3. **初始化与使用**:在PHP中,`session_start()`函数用于启动Session,之后可以使用`$_SESSION`全局数组...

    01_cookie和session的关系.rar

    如果你的积分不够,请与我联系,我单独使用QQ(215498544)等工具给你传(仅下班后晚上有时间),如果你的积分多,可以赞助我10分,我积分为0,老是不让下载,很烦人,呵呵。 如果你看了视频,感觉不好,也请不要骂...

Global site tag (gtag.js) - Google Analytics