zoukankan      html  css  js  c++  java
  • Jsessionid和cookie的区别与联系

    1、session:

    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,只能通过JavaScript来读取。


    2、cookie:

    所谓Cookie,只是一条极为短小的信息,它能够被网站自动地文本方式放置在一台电脑的硬盘中。通过Cookie,网站可以识别你是第一次访问,或是又一次访问它。网站还可以利用Cookie了解你对哪些内容感兴趣,收集与用户有关的信息,例如记录自动登录的时间限制,记录用户名,投票仅一次的限制等等。在你浏览某些网站的时,网站的程序会在你不知不自觉中将一个小的Cookie(作为一个文本文件)存储在你的硬盘中。如果你想知道自己电脑里都有什么样的Cookie,那么请在Windows目录下寻找Cookie的文件夹。

    去除Cookie

    如果你不想在电脑里存储Cookie,可以改变浏览器的设置。具体方法如下(以IE为例):
    启动IE,找到“工具/Internet 选项/安全/自定义级别”,这时你就可以看到如何处理Cookie的不同选项了。这种方法适用于IE 5.0以上的版本
  • 相关阅读:
    pymongo
    活动专题,各种手机的适配
    怎么判断是qq浏览器还是uc浏览器?
    并的用法,存在并执行~~
    window.location.href在微信端不起作用的解决方法?
    div双击全屏,再双击恢复到原来的状态vue,js来做
    avalon结合原生js tab切换
    vue指令大全~~~
    jquery中$.get()如何让跨域请求携带cookie?
    git 的使用方法以及要注意的地方~/git stash的使用
  • 原文地址:https://www.cnblogs.com/liangxiaojiu/p/7229153.html
Copyright © 2011-2022 走看看