cookie
- 介绍
cookie 是当你浏览某个网站的时候,由 web 服务器存储在你的机器硬盘上的一个小的文本文件。
它记录了你的用户名、密码、浏览的网页、停留的时间等信息。
当你再次来到这个网站时,web 服务器会先看看有没有它上次留下来的 cookie。 如果有的话,会读取 cookie 中的内容,来判断使用者,并送出相应的网页内容,比如在页面显示欢迎你的标语,或者让你不用输入ID、密码就直接登录。 - 用法
document.cookie = "name=phoeny"
并没有提供便捷的 get/set 用法,一般使用的时候会利用封装好的库,比如 vue-cookie - 大小
4KB - 生命周期
可设置失效时间,没有设置的话,默认为*浏览器会话期间* - 存储位置
若不设置过期时间,则表示这个 cookie 的生命周期为浏览器会话期间,关闭浏览器, cookie 就消失,会话 cookie 一般不存储在硬盘上而是保存在内存里。
有些浏览器提供了会话恢复功能,这种情况下即使关闭了浏览器,会话期 Cookie 也会被保留下来,就好像浏览器从来没有关闭一样,这会导致 Cookie 的生命周期无限期延长。若设置了过期时间,浏览器就会把 cookie 保存到硬盘上
- http请求
当服务器收到 HTTP 请求时,服务器可以在响应头里面添加一个Set-Cookie选项。浏览器收到响应后通常会保存下 Cookie,之后对该服务器每一次请求中都通过 Cookie 请求头部将 Cookie 信息发送给服务器。
每一次的 http 请求,如果有 cookie ,浏览器都会自动带上 cookie 发送给服务端。但是很多数据并不是每次请求都需要发给服务端,毕竟会增加网络开销,浪费带宽。
localStorage 和 sessionStorage 都是 html5 的新特性
localStorage
- 用法
- 设置项:
localStorage.setItem('myCat', 'Tom'); - 读取项:
let cat = localStorage.getItem('myCat'); - 移除项:
localStorage.removeItem('myCat'); - 移除所有项:
localStorage.clear();
- 大小
5MB - 生命周期
除非手动清除,否则将会永杰保存 - 存储位置
硬盘 - http请求
仅在浏览器中保存,不和服务器通信
sessionStorage
- 用法
- 设置项:
sessionStorage.setItem('myCat', 'Tom'); - 读取项:
let cat = sessionStorage.getItem('myCat'); - 移除项:
sessionStorage.removeItem('myCat'); - 移除所有项:
sessionStorage.clear();
- 大小
5MB - 生命周期
仅在当前**网页会话**下有效,关闭页面或浏览器后就会被清除 - 存储位置
内存 - http请求
仅在浏览器中保存,不和服务器通信
vuex
vuex用于组件之间的传值,刷新页面后vuex存储的值就会丢失。
vuex-persistedstate可以自动将vuex中的值同步到localStorage或sessionStorage中。