伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

Cookie与Session

来源:本站原创 浏览:118次 时间:2022-08-21

两者出现原因?

Cookie和Session出现的原因:由于http 协议是无状态的,服务器无法确定这次请求和上次的请求是否来自同一个客户端。利用session和cookie可以让服务器知道不同的请求是否来自同一个客户端。

定义及工作原理:

Cookie是服务器在本地机器上存储的小段文本并随每一个请求发送至同一服务器。用户在第一次请求后,由服务器生成Cookie,并封装在响应头中,客户端在接收到响应后存储在客户端;客户端再次发生请求时,请求中会携带Cookie数据,由服务器对会话进行跟踪Cookies保存在客户端,主要内容包括:名字,值,过期时间,路径等等。

分类

会话cookie和持久cookie
  会话cookie:不设置过期时间,只要关闭浏览器窗口cookie就消失了。会话cookie不保存在硬盘上,保存在内存里。
  持久cookie:设置过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。存储在硬盘上的cookie可以在不同的浏览器进程间共享。而对于保存在内存的cookie,不同的浏览器有不同的处理方式。

Session工作原理
  • 在服务器中系统会为每个会话维护一个Session。不同的会话,对应着不同的Session。那么如何做到在同一会话过程中,一直使用的是同一Session对象?
  1. 1.写入Session列表
  • 服务器对当前应用中的Session是以Map形式进行管理的,这个Map称为Session列表。该Map的key为32位的随机字符串,这个随机字符串称为JSessionID,value则为Session对象的引用。
  • 当用户第一次提交请求时,服务端Servlet中执行get.Session(),会自动生产一个Map.Entry对象,key为JSessionID,value则为Session对象的引用。

2.服务器生成并发送Cookie

  • 在将Session信息写入Session列表后,系统会自动将"JSESSIONID"作为name,32位的随机串作为value,以Cookie的形式存放到响应报头中,将该Cookie发送到客户端

3.客户端接收并发送Cookie

  • 客户端接收到这个Cookie后会将其放置浏览器缓存中。当用户提交第二次请求时,会将缓存中的这个Cookie放在请求的头部发送到服务端

4.在Session列表中查找

  • 服务器会根据请求中的Cookie中的JSESSIONID,从Map中查找对应的value,即Session对象。然后对Session对象的域属性进行读写操作

    Cookie和Session的区别

    1. Cookie 在客户端(浏览器、易伪造、不安全),Session 在服务器端(会消耗服务器资源)。
    2. Cookie 只能保存ASCII字符串,如果是Unicode字符或者二进制数据需要先进行编码。Cookie中也不能直接存取Java对象。 Session能够存取很多类型的数据,包括String、Integer、List、Map等,Session中也可以保存JJava对象。

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net