cookie,sessionStorage,loclaStorage,HTML5应用程序缓存
cookie
Cookie 是一些数据,由服务器生成,发送给浏览器,一旦用户从该网站或服务器退出,Cookie 就存储在用户本地的硬盘上,下一次请求同一网站时会把该cookie发送给服务器。Cookie的作用就是用于解决“如何记录客户端的用户信息”。
可以使用 document.cookie 属性来创建 、读取、及删除 cookie。
创建 cookie :
document.cookie="username=Irelia;
为 cookie 添加一个过期时间(以 UTC 或 GMT 时间)。默认情况下,cookie 在浏览器关闭时删除:
document.cookie="username=Irelia; expires=Thu, 19 Dec 2025 12:00:00 GMT";
path 参数告诉浏览器 cookie 的路径。默认情况下,cookie 属于当前页面。
document.cookie="username=Irelia; expires=Thu, 19 Dec 2025 12:00:00 GMT; path=/";
Cookie的缺陷
cookie会被附加在每个HTTP请求中,所以无形中增加了流量。
由于在HTTP请求中的cookie是明文传递的,所以安全性成问题。(除非用HTTPS)
Cookie的大小不能超过4kb。对于复杂的存储需求来说是不够用的。
MDN链接:https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/cookies
sessionStorage
这个数据本质是存储在当前页面的内存中,为页面会话期间可用的每个给定源维护一个单独的存储区域(只要浏览器处于打开状态,包括页面重新加载和恢复)
仅为会话存储数据,这意味着在关闭浏览器(或选项卡)之前存储数据。
数据永远不会传输到服务器。
存储限制大于cookie(最多5MB)。
方法:
setItem(key ,value):存储数据,以键值对的方式存储
getItem(key):获取数据,通过指定名称的key获取对应的value值
removeItem(key):删除数据,通过指定名称key删除对应的值
clear() :清空存储的内容
loclaStorage
1.存储的内容一般为5MB
2.不同浏览器不能共享数据。但是在同一个浏览器的不同窗口中可以共享数据
3.永久生效,他的数据是存储在硬盘上,并不会随着页面或者浏览器的关闭而清除,如果想清除,必须手 动清除
方法:
setItem(key ,value):存储数据,以键值对的方式存储
getItem(key):获取数据,通过指定名称的key获取对应的value值
removeItem(key):删除数据,通过指定名称key删除对应的值
clear() :清空所有存储的内容
WebStorage
SessionStorage与LocalStorage都属于Web Storage提供的API
WebStorage的优点:
(1)存储空间更大:cookie为4KB,而WebStorage是5MB;
(2)节省网络流量:WebStorage不会传送到服务器,存储在本地的数据可以直接获取,也不会像cookie 一样美词请求都会传送到服务器,所以减少了客户端和服务器端的交互,节省了网络流量;
(3)对于那种只需要在用户浏览一组页面期间保存而关闭浏览器后就可以丢弃的数据,sessionStorage 会非常方便;
(4)快速显示:有的数据存储在WebStorage上,再加上浏览器本身的缓存。获取数据时可以从本地获取 会比从服务器端获取快得多,所以速度更快;
(5)安全性:WebStorage不会随着HTTP header发送到服务器端,所以安全性相对于cookie来说比较高 一些,不会担心截获,但是仍然存在伪造问题;
(6)WebStorage提供了一些原生方法,数据操作比cookie方便;
HTML5应用程序缓存
使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本。
应用程序缓存为应用带来三个优势:
离线浏览 - 用户可在应用离线时使用它们
速度 - 已缓存资源加载得更快
减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。
如果你还想对HTML5应用程序缓存有更多的了解,可以看看这个https://www.w3school.com.cn/html5/html_5_app_cache.asp
最新文章
- visual studio2010 “类视图”和“对象浏览器”图标
- Verilog学习笔记设计和验证篇(三)...............同步有限状态机的指导原则
- 用mciSendString做音乐播放器
- 移动开单软件 手持PDA开单扫描打印系统开发介绍
- 【资料分享】 OpenCV精华收藏
- oracle不用tsname文件的时候着怎么办
- android Editview中加小图标或者文字实现
- Gamit解算脚本
- cf446C DZY Loves Fibonacci Numbers
- WF4.0——升级技能:托付应用
- java环境变量配置原理解析以及eclipse导入外包的方法
- sql servse 查询当前库内表索引值
- #WEB安全基础 : HTML/CSS | 0x7HTML5和W3C验证
- 测者的性能测试手册:Web压力测试工具webbench
- css尺寸(大小)属性
- 【Spring】使用Spring发送邮件
- MyBatis中调用存储过程和函数
- centos安装python3虚拟环境和python3安装
- 【DeepLearning】Exercise:PCA in 2D
- jQuery 3.1 参考手册.CHM离线版下载
热门文章
- 【完虐算法】LeetCode 接雨水问题,全复盘
- Linux Mem (目录)
- Android 有意思的脚本(打印温度)
- python实现图片色素的数值运算(加减乘除)和逻辑运算(与或非异或)
- [hdu6990]Directed Minimum Spanning Tree
- [nowcoder5667G]Greater and Greater
- 七、Hadoop3.3.1 HA 高可用集群QJM (基于Zookeeper,NameNode高可用+Yarn高可用)
- SpringBoot集成邮件发送
- P7045 「MCOI-03」金牌
- P5599【XR-4】文本编辑器