手记

cookie,session,sessionStorage,localStotage的区别

1.cookie

保存位置: 客户端

使用方式:

如果不设置过期时间,cookie保存在浏览器内存中,生命周期随浏览器的关闭而结束.简称会话cookie.
如果设置过期时间,cookie则保存在硬盘中,关闭浏览器依然存在,直到过期才消失.

2.session

保存位置: 服务器端

使用方式: session目前主流都配合cokie使用


登录案例(cookie和session结合)

用户客户端登录系统

登录成功后,由图上的response的headers我们可以看到服务器端会发给客户端一个带有JSESSIONID的唯一用户标识的特殊信息,这个就是cookie,由服务器端发回并设置,此时的cookie没有设置过期时间,故生命周期是随浏览器的关闭而结束

由上图可知,每次发请求到后台时,在request的header里都会带着cookie到后台,以cookie里面的JSESSIONID在服务器中区分是哪个用户进行的操作.
因为此时存储的Cookie是会话Cookie,只要整个浏览器不关闭,cookie一直有效.
除非换浏览器打开,此时没有会话cookie,跳转到登录界面,服务器端会重新生成新的JSESSIONID返回给客户端.


3.localStorage(本地存储)

存储位置: 客户端

生命周期:

localStorage的生命周期是永久的,关闭页面或浏览器之后localStorage中的数据也不会消失。localStorage除非主动删除数据,否则数据永远不会消失。

4.sessionStorage(会话存储)

存储位置: 客户端

生命周期:

sessionStorage的生命周期是在仅在当前会话下有效。sessionStorage引入了一个“浏览器窗口”的概念,sessionStorage是在同源的窗口中始终存在的数据。只要这个浏览器窗口没有关闭,即使刷新页面或者进入同源另一个页面,数据依然存在。但是sessionStorage在关闭了浏览器窗口后就会被销毁。同时独立的打开同一个窗口同一个页面,sessionStorage也是不一样的。

最后

  • 喜欢的记得点个star.鼓励一下,谢谢!
2人推荐
随时随地看视频
慕课网APP