Cookies 和 LocalStorage 还有SessionStorage 用于在客户端存储数据。以下是它们三者的区别:
一、存储容量
1. Cookies:存储容量较小,通常为 4KB 左右。
2. LocalStorage:存储容量较大,多数现代浏览器为每个域名提供 5 - 10MB 的存储空间。
3. SessionStorage:与 LocalStorage 的存储容量相似,一般也是 5 - 10MB 左右。
二、数据有效期
1. Cookies:可以设置有效期。如果未设置,在浏览器会话结束时删除;设置后,在指定有效期内存在,到期后删除。
2. LocalStorage:除非手动清除或通过 JavaScript 代码清除,否则数据一直存在,没有自动过期机制。
3. SessionStorage:数据仅在当前会话(即当前窗口或标签页)有效,一旦会话结束(关闭当前窗口或标签页),数据就会被清除。
三、与服务器的通信
1. Cookies:每次 HTTP 请求时,会自动将与当前域名相关的 Cookies 数据发送到服务器。
2. LocalStorage:数据仅存储在客户端本地,不会随 HTTP 请求自动发送到服务器。
3. SessionStorage:同 LocalStorage,数据不会自动发送到服务器。
四、作用域
1. Cookies:在设置的域名及其子域名下有效。
2. LocalStorage:在相同协议、相同主机名、相同端口下的所有页面都可以访问。
3. SessionStorage:仅在同一窗口(或标签页)内的页面可以访问。