理解cookie、session、localStorage、sessionStorage的不同

目录

一,cookie

二,session

三,localStorage

四,sessionStorage

五,对比


1.cookie是存储于访问者的计算机中的数据,用于同一浏览器访问同一域的时候共享数据
2.HTTP是无状态协议。也就是说:当你浏览了一个页面,然后跳转到同一个网站的另一个页面,服务器无法认识到这是同一个浏览器在访问同一个网站。每次的访问是没有关系的,也就是说服务器无法检测到这个状态

一,cookie

  1. 在客户端记录信息确定用户身份。
  2. 由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。就给客户端们颁发一个通行证,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理。
  • 客户端发送一个http请求到服务器端
  • 服务器端发送一个http响应到客户端,其中包含Set-Cookie头部 
  • 客户端发送一个http请求到服务器端,其中包含Cookie头部 

       
       

                 服务器端发送一个http响应到客户端

 

二,session

session是另一种记录客户状态的机制,不同的是cookie存储在客户端,session存储在服务器端。
session的运行机制:浏览器访问服务器并第一次发送请求时,服务器端会创建一个session对象,类似于key-value的结构,然后把key以cookie的形式存储在客户端,浏览器后续每次请求服务器时都会带上这个key(也就是cookie),服务器根据这个key来查找相应的value,也就是session。客户的信息都存储在session中

 

session是由cookie进行标记的。当需要记住用户时,比如登录,在服务端会设置一个响应头Set-Cookie,返回给客户端,例如:Set-Cookie:SESSIONID=12345678;客户端接收到这个响应后,此后发送的每一个请求浏览器都会自动带上Cookie请求头,对应内容是Cookie:SESSIONID=12345678。在服务端内存中存有session,将客户端发送的请求中的cookie值与内存中的session进行对比,就可以识别这个客户端了。

如果用session在服务端进行存储,会出现的情况是,在一个处理淘宝业务的服务器集群中,不同的服务器被分配处理的业务不同,他们都处于淘宝这个大域名下,每台服务器的内存中都保留着一份同样的session,这就涉及到服务器之间session的复制。如若有100台服务器,每台服务器都有着同样的session,那么session所占用的内存之多可以想象。服务器既要处理业务,还得维护session的同步,如此一来,服务器无法通过增加业务的方式进行扩张,不易进行横向扩展。 
 

三,localStorage

推荐文章:

html5的localStorage之【增、删、改、查】:https://blog.csdn.net/qq_33862644/article/details/78689577

 

四,sessionStorage

sessionStorage 与 localStorage 的接口类似,但保存数据的生命周期与 localStorage 不同。可以将一部分数据在当前会话中保存下来,刷新页面数据依旧存在。但当页面或者浏览器关闭后,sessionStorage 中的数据就会被清空。

推荐文章:

sessionstorage的使用、存储、读取、删除:https://blog.csdn.net/weixin_41863239/article/details/86679056

五,对比

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值