9-说说cookie,localStorage和session

本文最后更新于:2021年2月17日 下午

问题

请问cookie,localStorage,sessionStorage的区别?

概念

cookie:cookie是HTML4中使用的给客户端保存数据的。可以和session配合实现用户身份识别,比如区别vip用户和普通用户。

webStorage: 包括localStoragesessionStorage。webStorage是HTML5中提出的内容。存粹为了保存数据,不会与服务器端进行通信

区别

1.相同点

  • 都是在客户端保存数据

  • 都是以字符串形式存放

2.不同点

  • 生命周期

    cookie:可以设置有效期(ExpiresMax-Age)。若不设置,默认是会话级别的临时存储(存放在内存),关闭浏览器就失效。设置后则存放在硬盘中,时间到了就失效。

    需要注意的是,有些浏览器提供了会话恢复功能,这种情况下即使关闭了浏览器,会话期Cookie 也会被保留下来,就好像浏览器从来没有关闭一样,这会导致 Cookie 的生命周期无限期延长

    提示:当Cookie的过期时间被设定时,设定的日期和时间只与客户端相关,而不是服务端。

    sessionStorage : 允许你访问一个对应当前源的会话存储(session Storage )对象。数据在页面会话结束时会被清除,也就是关闭窗口后就被销毁。

    localStorage: 类似sessionStorage,但其区别在于:存储在 localStorage 的数据可以长期保留,窗口或浏览器关闭后数据不会丢失。

  • 网络流量

    cookie的数据每次都会发给服务器端,而webStorage不会与服务器端通信,纯粹为了保存数据,所以webstorage更节省带宽。

  • 大小限制

    cookie:限制在4KB内

    webStorage:限制在5M

  • 安全性

    WebStorage不会随着HTTP header发送到服务器端,所以安全性相对于cookie来说比较高一些,不会担心截获(即便是https也无法保护由服务端传给客户端的数据)


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!