理解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

五,对比

发布了319 篇原创文章 · 获赞 124 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/qq_40323256/article/details/101829418
今日推荐