在目前的现代浏览器中主要有以下几种存储方案 1.cookie 2.localStorage 3.sessionStorage 4.indexDB
Cookie 是客户端存储数据的选项之一,它主要用于客户端存储会话信息。 它是由服务器在响应 HTTP 请求时,通过发送 Set-Cookie HTTP 头部包含的会话信息。 浏览器将会话信息存储起来,并在之后的每一个请求中携带Cookie 数据返回给 服务器,来做唯一标识通信。
Cookie 是与特定域绑定的。这个限制可以保证只对指定的接受者开放,不能被其它人访问。 Cookie 通常 遵循的限制规则:
如果 Cookie 总数超过了 单个域的 上限,浏览器会删除之前的Cookie。 不同浏览器表现不一样
如果创建的Cookie 字节超过了最大限制,则Cookie 会被删除。
名称 | 属性 |
---|---|
名称 [ name ] | cookie 唯一标识名称,不区分大小写,建议小写。 |
值 [ value ] | 存储在 cookie 字符串值 |
域 [ Domain] | cookie 有效域的访问。 |
路径 [Path=PATH] | 指定哪些路由路径必须包含cookie 才可以访问 |
过期时间 [Expres=DATE] | 表示cookie 什么时候被删除。默认情况下(不设置过期时间),浏览器在关闭时,cookie都会删除 |
安全标 [Secure ] | 设置之后,只在使用SSL安全链接情况下才会把cookie 发送给服务器。 |
读取cookie [HttpOnly] | 设置后只能在服务器上读取,不能再通过JavaScript读取Cookie |
Web Stronge 的出现 主要是解决 cookie 的问题,存储不需要频繁发送服务端的数据。
它提供了 跨会话 持久化存储大量数据的机制。
Web Stronge 中 定义了两个对象
localStronge | 永久存储 |
---|---|
sessionStronge | 会话存储 |
Stronge 提供的 方法
clear( ): 删除所有制 getItem( ): 获取指定name 值 removeItem( ) : 删除给定 name 键值对 setItem( ) : 设置给定name 值
sessionStronge 对象只存储会话数据,当页面关闭时,意味着会话结束,那么数据会清空。当页面 刷新 / 崩溃 时,数据还会保存在浏览器中,
// 设置会话key-value
// 属性存储数据
sessionStorage.name = '前端自学社区'
// 方法存储数据
sessionStorage.setItem('title', '测试')
// 获取指定name值
sessionStorage.getItem('name')
// 删除会话数据
// 删除所有sessionStronge
sessionStorage.clear
// 删除指定key
sessionStorage.removeItem('name')
// 获取sessionStronge 个数
sessionStorage.length
本地数据持久化,永久的保存在浏览器中,除非主动删除。 由于它 是 Stronge 的实例, 它拥有 Stronge 所有的方法,用法和 sessionStronge 一样。
运行在浏览器上的非关系型数据库 依旧受同源策略限制
本文将不讲述了,日常开发用的少。