干货分享|Cookie和Session主要的区别

Cookie 和Session都是用来跟踪浏览器用户身份的会话方式,但是两者的应用场景不太一样。Cookie一般用来保存用户信息,Session主要作用是通过服务端记录用户的状态。

一、工作原理

1、Cookie

(1)浏览器端第一次发送请求到服务器端(2)服务器端创建Cookie,该Cookie中包含用户的信息,然后将该Cookie发送到浏览器端(3)浏览器端再次访问服务器端时会携带服务器端创建的Cookie(4)服务器端通过Cookie中携带的数据区分不同的用户

2、Session

(1)Session是基于Cookie实现的。浏览器端第一次发送请求到服务器端,服务器端创建一个Session,为了保证在一个会话的多次请求之间Session是同一个,同时会创建一个特殊的Cookie,其name为JSESSIONID的固定值,value为session对象的ID,然后再将该Cookie发送至浏览器端。(2)浏览器端发送第二次及以上的请求到服务器端,浏览器端访问服务器端时就会携带该name为JSESSIONID的Cookie对象(3)服务器端根据name为JSESSIONID的Cookie的value,去查询Session对象,从而区分不同用户。

注:对于第三步(3)

  • 如果name为JSESSIONID的Cookie不存在,即发生了关闭或更换浏览器的情况,返回(1)中重新去创建Session与特殊的Cookie
  • name为JSESSIONID的Cookie存在,根据value中的SessionId去寻找session对象
  • value为SessionId不存在,返回(1)中重新去创建Session与特殊的Cookie
  • value为SessionId存在,返回session对象

二、相同点与不同点

1、相同点:Cookie和Session都是来完成一次内多次请求间的数据共享

2、不同点存储方式:Cookie是将数据存储在客户端,Session将数据存储在服务端安全:Cookie不安全,Session安全存储时间:Cookie可以长期储存,而Session默认储存30分钟数据大小:Cookie最大不超过3KB,而Session没有大小限制对于服务器性能:Cookie不占用服务器资源,Session需占用服务器资源

解释:关于Cookie的缺点,第一,因为Cookie这个数据是存在浏览器上、存在客户端上的,因为客户端是谁我们不知道,且客户端系统的安全程度也远远不如服务器,存在客户端的数据不是很安全,特别是比较隐私的,如密码等。第二,Cookie在很多请求中会把数据发送给服务器,每次访问服务器都发同样的数据,就会增加数据量,会对性能产生一定的影响。为了解决这些问题,引用了Session

三、Cookie和Session的使用

1、Cookie的使用

(1)设置Cookie返回给客户端

//cookie示例
@RequestMapping(path = "cookie/set", method = RequestMethod.GET)
@ResponseBody
public String setCookie(HttpServletResponse response) {
//创建cookie
Cookie cookie = new Cookie("code", CommunityUtil.generateUUID());
//设置cookie生效范围
cookie.setPath("community/alpha");
//设置cookie的生存时间
cookie.setMaxAge(60*10);
//发送cookie
response.addCookie(cookie);

return "set cookie";
}

<< · Back Index ·>>

发表回复

相关推荐

企業如何做預算管理?

預算管理一、全面預算的實戰準備  1.從預算到企業  2.從預算到部門  3.從預算到個人  4.預算實戰環境 二、全面預算的...

· 16秒前

滋补、治肾病、安眠、抗疲劳的奇妙菌物——蝉花

蝉花,别名蝉蛹草、蝉茸、冠蝉、胡蝉、蜩、螗蜩、唐蜩、大虫草、金蝉花、虫花、大蝉草,是一种外形具有“动物”和“植物”形态特 ...

· 17秒前

阅览河源|今天我们来逛三园,什么园?

昨天阅览的是与众不同的康养圣地 今日的活动也很养生!往下看你就知道了 大家闲暇时光喜欢去哪?反正闲下来的时候总是要到处 ...

· 2分钟前

元素周期表裡所有元素都買1克,大概需要多少錢?

目前人類共發現118種化學元素,其中1~94號元素在自然界均有發現,而95~118號元素全是人工合成的,人工合成元素的成本非常之高...

· 3分钟前

如何除甲醛?2022全網最新,快速有效新房去甲醛方法推薦

除甲醛千萬不要在網上跟風瞭,我是真的會謝!千萬不要再去跟風!網上智商稅太多,什麼柚子皮、綠植、洋蔥、茶葉統統都是智商...

· 4分钟前