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

目录

一,cookie

二,session

三,localStorage

四,sessionStorage

五,对比


 

一,cookie

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

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

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

 

二,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

五,对比

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