zoukankan      html  css  js  c++  java
  • cookie 与 session 的差别、联系

    1、存放位置:

         Session 存放在server端。

         Cookie 存放在client;

     

    2、保存形式:

         Session保存在server的内存中(在server端设置超时时间,与浏览器设置无关);

         Cookie以文件形式存放在client(能够通过浏览器设置进行更改、清除),单个cookie闻见一般限制为3k;

     

    3、安全性:

         Session 较安全。

         Cookie 不安全(能够通过分析本地的cookie进行cookie欺骗);

     

    4、性能:

         Session 当訪问量增大时会占用server内存从而消耗server性能。

         Cookie 不消耗server性能,考虑减轻server负荷能够考虑使用cookie

     

    5、persistent cookie(cookie)与 session cookie的 差别:

     

          http是无状态协议,客户每次读取web页面时。server都会打开新的会话。

    并且server也不会自己主动维护客户的上下文信息。

          Session就是一种保存上下文信息的机制,它是针对每个用户的。变量的

    值保存在server端,通过SessionID来区分不同的客户。

     

          Session 是以 cookie 或 URL重写为基础的,默认使用cookie来实现。系统

    会创建一个名为 jessionID 的输出cookie(我们叫做session cookie),差别于

    persistent cookies(也就是我们常说的cookie),cookie是存放在硬盘上的。

    而session cookie是存储在浏览器内存中的。我们一般是看不到session cookie

    (jessionID)的。可是当我们吧浏览器的cookie禁用后,webserver会採用URL

    重写的方式传递SessionID,我们就能够在浏览器地址栏看到 sessionid=KWJH

    UG6JJM65HS2K6 之类的字符串,明确了原理。两者的差别就一目了然。

     

          Session cookie 针对某一次会话而言。会话结束 session cookie 也就随着消失了;

          persistent cookie 仅仅是存在与client银盘上的文本(一般是加密的),可能会遭到 cookie欺骗和针对cookie的跨站脚本攻击;

          所以 session cookie 更安全。

          session cookie 是不能跨窗体使用的,当你新开一个浏览器窗体进入同样页面时,

    系统会赋予你一个新的 sessionID,这样我们信息共享的目的就达不到了,此时我们

    能够先把 sessionID 保存在 persistent cookie 中。然后在新窗体中读出来,就能够得

    到上一个窗体的 sessionID了,这样通过 session cookie 和 persistent cookie 的结合

    就能够实现跨窗体的 session tracking (会话跟踪)。

  • 相关阅读:
    Android MP3录音实现
    Android应用中MVP开发模式
    ExpandableListView getChildView 不执行,不显示子列表
    Javascript中apply、call、bind
    baidu地图:实现多点连线渲染
    经纬度纠偏的一些经验
    Spark:spark df插入hive表后小文件数量多,如何合并?
    Java-Maven(七):Eclipse中Maven依赖、聚合、继承特性
    Java-Maven(六):Eclipse中Maven插件的命令操作
    Java-Maven(五):Eclipse&Maven下创建java工程&web工程
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/7279134.html
Copyright © 2011-2022 走看看