Cookie和Sessison的区别

Cookie是为解决HTTP无状态特性而设计的,它将数据存储在客户端,分为内存和硬盘两种类型。Session则是服务器端的会话机制,通过sessionID在服务器存储用户信息。两者都用于跟踪用户身份,但Cookie存在流量负担、安全性问题和存储限制,而Session更安全但会占用服务器资源,且不支持跨域。
摘要由CSDN通过智能技术生成

目录

1.Cookie简介

2.Cookie工作原理

3.Cookie作用

4.Cookie缺陷

5.Session简介

6.Session工作原理

7.Session作用

8.Session与Cookie的联系

9.Session与Cookie的区别


1.Cookie简介

Http是一个基于请求与响应、无状态的应用层协议

而无状态是指游览器不记得上一次用户对服务器请求了都什么,就比如登录操作,一次登录之后,再去访问别的时,它提示又要你登录。这种无状态给前后端之间的交互带来了困扰

Cookie的诞生就是为了解决这个困扰。某些网站为了辨别用户身份,将其用户数据以键值对的方式存储在客户端(通常是游览器)上,这样每次访问一个Web站点时,客户端会将相应的cookie数据放在http的报头里一起发送给服务器,而服务器就能根据cookie数据判断使用者。

Cookie是保存在客户端中的,按客户端的存储位置,分为内存cookie和硬盘cookie

内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就销毁了,其存在时间是短暂的。

硬盘Cookie保存在硬盘里,有一个过期时间,除非用户手工清理或到了过期时间,才会被删除。存在时间很长。

2.Cookie工作原理

1).服务器创建cookie

第一次登录一个网站后,服务器会创建一个具有身份标识的cookie,并将其以Set-Cookie的形式放入响应报头中.

2).客户端存储cookie

客户端收到响应报文后,根据报文中的set-cookie信息,生成相应的cookie保存在客户端,该Cookie里面记录这用户当前的信息。

3).发送cookie

用户再次访问网站时,会将所有存储在客户端的cookie检查一遍,如果存在某个网站的Cookie,则把该Cookie附加在请求资源的http请求报头上发送给服务器。

4).读取cookie

服务器获取后http请求后,识别读取出cookie后,找到cookie对应的信息.

3.Cookie作用

cookie的最根本作用就是在客户端存储用户访问网站的一些信息.比如:

  • 用户自动登录。
  • 购物车功能。
  • 记录用户浏览数据,进行商品(广告)推荐。

4.Cookie缺陷

  1. cookie是附带在http请求报头中的,增加了流量负担
  2. cookie在http请求报头中是明文传递的,存在安全性问题(HTTPS除外).
  3. cookie是一种小型文本文件,大小限制在4KB左右。对于复杂的存储需求来说是不够用的。

5.Session简介

Session表示服务器的会话过程,这个过程可以是连续的,也可以是不连续的,Session是服务器的机制,Session对象用于存储特定用户会话所需的信息.

6.Session工作原理

用户第一次向服务器发送请求之后,服务器会创建一个相应的session;然后将session中的sessionld返回给客户端,这个sessionld就保存在cookie中;客户端收到sessionld会将它保存在cookie中,当客户端再次访问服务器时,会带上这个sessionld;当服务器再次接收到客户端的速求时,会根据发送过来的sessionld去内存中找对应的session,继续会话.

7.Session作用

Session的根本作用是在服务器端存储用户和服务器会话的一些信息。比如判断用户是否登录

8.Session与Cookie的联系

cookie和session都是用来来跟踪游览器用户身份的会话方式,sessionld是保存在cookie中的.

9.Session与Cookie的区别

1).存储位置不同

cookie存储在客户端上;

session存放在服务器端.

2).存储方式不同

cookie中只能保管ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制;
session中能存储任何类型的数据,比如string,integer,list,map等.

3)存储容量不同

单个cookie存储数据的容量在4K左右; 单个Cookie存储数据的容量在4K左右;
对于session来说,没有上限,但是session是由服务器保管的,考虑到服务器性能,还是不要在session上存放过多的信息.

4).安全性不同

cookie是保存在客户端上的,某些人可以分析存放在本地的cookie或抓包进行cookie诈骗,有安全隐患,不安全;
session是由服务器管理的,对客户端是透明,较为安全.

5).跨域支持不同

cookie支持跨域名访问;
session不支持夸域名访问.

6).对服务器压力不同

cookie是保存在客户端上的,不占用服务器的资源,对服务器的负担不大,适用于有很多并发用户的网站;

session是保管在服务器端的,每个用户都会产生一个session。假如并发访问的用户很多,会产生很多的session,耗费大量的内存.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哆啦A梦的110

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值