cookie 和 session的区别(简单易懂)

cookie:

Cookie是访问某些网站以后在本地存储的一些网站相关的信息,下次再访问的时候减少一些步骤。

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

Cookie中一般包括如下主要内容:

  1. key:设置的cookie的key。
  2. value:key对应的value。
  3. max_age/expire_time:设置cookie的过期时间。
  4. domain:该cookie在哪个域名中有效。一般设置子域名,比如cms.example.com。
  5. path:该cookie在哪个路径下有效。

我们登录某一个网站时需要输入用户名及密码,如果用户名和密码保存为cookie,则下次我们登录该网站的时候就不需要再输入用户密码了。

session:

session是一种存在于服务器当作存储用户数据的类HashTable的结构。

        浏览器第一次发送请求时,服务器当中就会生成这个HashTale和一个用来标识这个session的sessionID。然后服务器将这个sessionID响应给浏览器,等浏览器第二次请求服务器时会带上这个sessionID,然后服务器会再现存的sessionID中和从浏览器中传来的sessionID对比,看看有没有一样的,找到一样的,就可以访问这个sessionID所对应的HsahTble中所储存的数据了。

这样可以用来判断当前用户是否具有登录状态或者具有某种权限,因为session是存放再服务端的,所以数据无法伪造。

cookie和session的区别:

储存位置不同:

cookie数据保存在客户端,session数据保存在服务端。

存储容量大小不同

单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的cookie不能3K。
session存储容量大小没有限制。session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用cookie。

安全性不同

如果你能够截获某个用户的cookie变量,然后伪造一个数据包发送过去,那么服务器还是 认为你是合法的。所以,使用cookie被攻击的可能性比较大。cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,如果主要考虑到安全应当使用session。                                  session存储在服务器上,不存在敏感信息泄漏的风险,安全性较高。

存储有效期不同

session过期与否,取决于服务器的设定。cookie过期与否,可以在cookie生成的时候设置进去。服务器的设定:session在超过一定的操作时间(通常为30分钟)后会失效,但是当关闭浏览器时,为了保护用户信息,会自动调用session.invalidate()方法,该方法会清除掉session中的信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

日上三杆快起床

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

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

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

打赏作者

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

抵扣说明:

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

余额充值