【浏览器缓存】有关浏览器缓存整理

本地存储小容量

1)http是一种无状态的协议,所以每次客户端请求服务器的时候都是'初次见面',所以每次接收用户请求时,都是无法确定用户的身份,
2)为了解决这个无状态问题,会在登录成功时,服务端再响应头中存储着cookie信息服务端给用户下发cookie的数据(假设是一张小票),
3)等以后用户再请求服务端时,带着小票一起发送过去(自动),服务端检测小票的信息即可判断这个用户使用访问过
复制代码cookie的数据是存储在客户端的,存储容量只有4k

cookie能完成的部分应用,还有更多的功能需要全局变量。cookie的缺点主要集中于安全性和隐私保护。主要包括以下几种:

(1)cookie可能被禁用。当用户非常注重个人隐私保护时,他很可能禁用浏览器的cookie功能;
(2)cookie是与浏览器相关的。这意味着即使访问的是同一个页面,不同浏览器之间所保存的cookie也是不能互相访问的;
(3)cookie可能被删除。因为每个cookie都是硬盘上的一个文件,因此很有可能被用户删除;
(4)cookie安全性不够高。所有的cookie都是以纯文本的形式记录于文件中,因此如果要保存用户名密码等信息时,最好事先经过加密处理。

session

session实现方式:

因为cookie是保存在客户端的,用户可以随意修改或伪造
服务端不再将数据直接下发到客户端保存了,而是将数据保存在服务端
下发的是保存数据区域的标识(手牌)
用户下次请求时带着标识到服务端,开箱子读取数据进行操作即可

好处:确保数据无法被用户操作,安全

localStorage

LocalStorage的数据将一直保存在浏览器内,直到用户清除浏览器缓存数据为止。存储容量为5M

生命周期:声明周期永久生效,除非手动删除 否则关闭页面也会存在
数据共享:同一个浏览器中打开两个页面是同源的,就可以共享localStorage数据

如果两个页面的协议,端口(如果有指定)和主机都相同,则两个页面具有相同的源

语法:

存储数据:localStorage.setItem(key, value)
获取数据:localStorage.getItem(key)
删除数据:localStorage.removeItem(key)
清空数据:(所有都清除掉)localStorage.clear()

sessionStorage

生命周期: 为关闭浏览器窗口
数据共享:在同一个窗口(页面)下数据可以共享
语法:

存储数据:sessionStorage.setItem(key, value)
获取数据:sessionStorage.getItem(key)
删除数据:sessionStorage.removeItem(key)
清空数据:(所有都清除掉) sessionStorage.clear()

applicationCache

HTML5的应用缓存(application cache),或者简称为 appcache,是专门为开发离线 Web 应用而设计 的。Appcache就是从浏览器的缓存中分出来的一块缓存区。要想在这个缓存中保存数据,可以使用一个 描述文件(manifest file),列出要下载和缓存的资源
本地存储大容量
webSql(被废弃)
websql这种方式只有较新的chrome浏览器支持,并以一个独立规范形式出现,主要有以下特点
Web Sql 数据库API 实际上不是HTML5规范的组成部分;
在HTML5之前就已经存在了,是单独的规范;
它是将数据以数据库的形式存储在客户端,根据需求去读取;

跟Storage的区别是:

Storage和Cookie都是以键值对的形式存在的;
Web Sql 更方便于检索,允许sql语句查询;
让浏览器实现小型数据库存储功能;
这个数据库是集成在浏览器里面的,目前主流浏览器基本都已支持;

websql API主要包含三个核心方法:

openDatabase : 这个方法使用现有数据库或创建新数据库创建数据库对象。
transaction : 这个方法允许我们根据情况控制事务提交或回滚。
executeSql : 这个方法用于执行真实的SQL查询。

indexDB(非关系型数据库)

IndexedDB 是一个为了能够在客户端存储可观数量的结构化数据,并且在这些数据上使用索引进行高性能检索的 API。虽然 DOM 存储 对于存储少量数据是非常有用的,但是它对大量结构化数据的存储就显得力不从心了。IndexedDB 则提供了这样的一个解决方案。 IndexedDB 分别为同步和异步访问提供了单独的 API 。同步 API 本来是要用于仅供 Web Workers 内部使用,但是还没有被任何浏览器所实现。异步 API 在 Web Workers 内部和外部都可以使用,另外浏览器可能对indexDB有50M大小的限制,一般用户保存大量用户数据并要求数据之间有搜索需要的场景。
异步API

往返缓存

往返缓存又称为BFCache,是浏览器在前进后退按钮上为了提升历史页面的渲染速度的一种策略。该策略具体表现为,当用户前往新页面时,将当前页面的浏览器DOM状态保存到bfcache中;当用户点击后退按钮的时候,将页面直接从bfcache中加载,节省了网络请求的时间。

posted @ 2023-02-02 09:59  Leise  阅读(130)  评论(0编辑  收藏  举报