客户端存储之cookie及浏览器Web Storage

前言

日常开发中,常常会有一些数据我们不方便存在后端,需要我们自己存在客户端,在使用的时候再取出来。常用的客户端存储有cookie和浏览器存储API,这两个也是面试中常考的问题,每次遇到基本都是回答一下存储大小及有效期长短就差不多了,今天看红宝书,才发现其实还有许多忽略的东西。

cookie

HTTP cookie通常也叫作cookie,最初用于在客户端存储会话信息。为了保证cookie不被恶意使用,在使用的时候有一些限制。
1.不超过300个cookie。
2.每个cookie不超过4KB。
3.每个域不超过20个cookie。
4.每个域不超过80KB。
除此之外,不同的浏览器还会有一些差别,使用的时候需要注意。如果cookie总数超过单个域上限,浏览器会删除之前设置的cookie,IE和Oprea会按照LRU(最近最少使用原则)删除,Firefox则使用随机删除原则。如果创建的cookie超过最大限制,则该cookie会被设置静默删除。
一条cookie名称、值、域、路径、过期时间、安全标志组成。在这些参数中,只有名称和值是必需的,其他都是可选参数,名称和值还需要使用decodeURIComponent编码。因为所有cookie都会作为请求头部由浏览器发送给服务器,为了避免性能问题,应该尽量只存储关键信息。

浏览器存储API-----Web Storage

Web Storage用于保存名称/键值对数据,共有的方法有以下几种:
1.clear() :删除所有值(Firefox没有实现)
2.getItem(name):取值指定name的值
3.key(index): 取得给定数值位置的名称(类似于数组索引)
4.removeItem(name): 删除指定name的键值对
5.setItem(name,value):设置键值对
Web Storage分为SessionStrageLocalStorage,二者都有上述方法,但是在使用的时候有一些差别。

1.SessionStorage

SessionStorage对象只存储会话数据,浏览器关闭后会自动清除,页面刷新不会丢失,浏览器崩溃后也可以恢复。

2.LocalStorage

LocalStorage数据不受页面刷新影响,也不会因为窗口关闭,浏览器重启等丢失,除非用户手动删除,否则不会丢失。
不同浏览器给SessionStorage和LocalStorage设置的空间大小设置不同,大多数限制为每个源5MB。

最后

以上就是今天总结的内容,喜欢就点个赞吧。

猜你喜欢

转载自blog.csdn.net/Salange1/article/details/127480942