存储方式 - 前端学习

news2024/9/25 1:22:26

1. cookie是什么?你了解cookie吗?

        在计算机领域中,特指一种由服务器发送到用户浏览器并保存在用户计算机上的小型文本文件。这个文件可以被服务器用来识别用户身份、跟踪用户活动、保存用户设置等。它通常由名称、值、域名、路径、过期时间等字段组成

1.1 cookie有那些属性?

Cookie 中属性的解释:
        ● Name:cookie的名字
        ● Value:cooke的值
        ● Path:定义了Web站点上可以访问该Cookie的目录
        ● Expires / Max-Age:表示cookie的过期时间,也就是有效值,cookie在这个值之前都有效。
        ● Size:表示cookie的大小
        ● HttpOnly:值为true时,Cookie只会在Http请求头中存在,不能通过doucment.cookie(JavaScript)访问Cookie。
        ● Secure:值为true时,只能通过https来传输Cookie。
        ● SameSite
                ● 值为Strict,完全禁止第三方Cookie,跨站时无法使用Cookie。
                ● 值为Lax,允许在跨站时使用Get请求携带Cookie,下面有一个表格介绍Lax的Cookie使用情况。
                ● 值为None,允许跨站跨域使用Cookie,前提是将Secure属性设置为true。
       ● Priority:Cookie的优先级。值为Low/Medium/High,当Cookie数量超出时,低优先级的Cookie会被优先清除

 1.2. Cookie 的生命周期

以前学习cookie就只知道cookie的一种存储方式,但其实cookie有两种方式,一种是会话性,一种是持久性

        会话性:如果cookie为会话性,那么cookie仅会保存在客户端的内存中,当我们关闭客服端时cookie也就失效了;
        持久性:如果cookie为持久性,那么cookie会保存在用户的硬盘中,直至生存期结束或者用户主动将其销毁

Cookie 使用的常见方法(服务端):
        ● new Cookie(String name, String value):创建一个Cookie对象,必须传入cookie的名字和cookie的值
        ● getValue():得到cookie保存的值
        ● getName():获取cookie的名字
        ● setMaxAge(int expiry):设置cookie的有效期,默认为-1。这个如果设置负数,表示客服端关闭,cookie就会删除。0表示马上删除。正数表示有效时间,单位是秒。
        ● setPath(String uri):设置cookie的作用域
        ● response.addCookie(Cookie cookie):将cookie给客户端进行保存
        ● resquest.getCookies():得到客服端传过来的所有cookie对象

Cookie 使用的常见方法 (客户端):

        ● JavaScript 可以使用 document.cookie 属性来创建 、读取、及删除(覆盖) cookie

前端项目一般会对cookie进行封装

/*
    toString() 把 Date 对象转换为字符串
    toTimeString() 把 Date 对象的时间部分转换为字符串
    toDateString() 把 Date 对象的日期部分转换为字符串
    toGMTString() 请使用 toUTCString() 方法代替
    toUTCString() 根据世界时,把 Date 对象转换为字符串
    toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串
    toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串
    toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串
    UTC() 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数
    valueOf() 返回 Date 对象的原始值
    setItem("键","值",未来到期的毫秒值);
    removeItem("键");
    getItem("键")
    clear() 清除所有cookie
    getAllCookies() 返回所有cookie的键值对  组成一个对象
                    
*/
 
/** 根据键值设置cookie值,  [millisecond为过期的毫秒值] */
function setItem(key, value, millisecond) {
    let str = "";
    str = str + key + "=" + value;
    if (millisecond != "undefined") {
        // 现在的时间加上你限定的时间 就是到期时间
        let date = new Date(new Date().getTime() + millisecond).toUTCString();
        str += ";expires=" + date;
    }
    document.cookie = str;
}
 
/*
 *  根据键删除cookie
*/
function removeItem(key) {
    // 设定为 到期时间为 0 ,即可以删除cookie
    document.cookie = "" + key + "=" + "*;expires=" + new Date(new Date().getTime() - 1000).toUTCString();
}
 
/*
 *  根据键获取cookie值, 若未获取到返回 null
*/
function getItem(key) {
    let cookiesStr = document.cookie;
    if (cookiesStr == "") {
        return null;
    }
 
    let index = cookiesStr.indexOf(key + "=");
    if (index == -1) {
        return null;
    }
    index = index + key.length + 1;
    // 
    let cookieStr = cookiesStr.substring(index)
    // 此key值的最后一个字符的序号
    let subIndex = cookieStr.indexOf(";");
 
    if (subIndex != -1) {
        // 截取出来
        cookieStr = cookieStr.substring(0, subIndex);
    }
 
    return cookieStr;
}
 
/** 清除所有cookie */
function clear() {
    let cookieObj = getAllCookies();
    for (const key in cookieObj) {
        removeItem(key);
    }
}
 
/** 获取所有cookie, 返回一个cookie对象 */
function getAllCookies() {
    let cookiesStr = document.cookie;
    let cookieObj = new Object();
 
    // 当前cookie为空时,返回空对象
    if (cookiesStr == "") {
        return cookieObj;
    }
 
    let cookieArr = cookiesStr.split(";");
 
    for (let index = 0; index < cookieArr.length; index++) {
        let cookieKey = cookieArr[index].substring(0, cookieArr[index].indexOf("=")).trim();
 
        let cookieVal = cookieArr[index].substring(cookieArr[index].indexOf("=") + 1).trim();
 
        cookieObj[cookieKey] = cookieVal;
    }
 
    return cookieObj;
}

1.3 总结

总结:Cookie就是一些数据,用于存储服务器返回给客服端的信息,客户端进行保存。在下一次访问该网站时,客户端会将保存的cookie一同发给服务器,服务器再利用cookie进行一些操作。利用cookie我们就可以实现自动登录,保存游览历史,身份验证等功能。

2. 前端的储存方式有那些?

cookies在 HTML5 标准前本地储存的主要⽅式,优点是兼容性好,请求头⾃带 cookie⽅便,缺点是⼤⼩只有4k,⾃动请求头加⼊cookie 浪费流量,每个 domain 限制 20 个 cookie,使⽤起来麻烦,需要⾃⾏封装
localStorageHTML5 加⼊的以键值对(Key-Value)为标准的⽅式,优点是操作⽅便,永久性储存(除⾮⼿动删除),⼤⼩为5M,兼容IE8+

localStorage.setItem("key","value");//存储
localStorage.getItems(key);//按key进行取值
localStorage.removeItems(key);//按key单个删除
localStorage.clear();//删除全部数据
localStorage.length;//获得数据的数量
localStorage.valueOf();//获取全部值


sessionStorage与 localStorage 基本类似,区别是sessionStorage当⻚⾯关闭后会被清理,⽽且与 cookie、localStorage 不同,他不能在所有同源窗⼝中共享,是会话级别的储存⽅式;

sessionStorage.setItem("key","value");//存储
sessionStorage.getItems(key);//按key进行取值
sessionStorage.removeItems(key);//按key单个删除
sessionStorage.clear();//删除全部数据
sessionStorage.length;//获得数据的数量
sessionStorage.valueOf();//获取全部值


Web SQL:2010 年被 W3C 废弃的本地数据库数据存储⽅案,但是主流浏览器(⽕狐除外)都已经有了相关的实现,web sql 类似于SQLite,是真正意义上的关系型数据库,⽤sql进⾏操作,当我们⽤JavaScript时要进⾏转换,较为繁琐
IndexedDB是被正式纳⼊HTML5 标准的数据库储存⽅案,它是NoSQL数据库,⽤键值对进⾏储存,可以进⾏快速读取操作,⾮常适合web场景,同时⽤JavaScript 进⾏操作会⾮常便

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1701265.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

外贸邮箱怎么注册

外贸邮箱指的是用于外贸业务的电子邮箱&#xff0c;其功能比一般的电子邮箱更加专业化。注册外贸邮箱既能提高工作效率&#xff0c;又能展示企业的专业性。那么如何注册外贸邮箱呢&#xff1f;本文将详细介绍注册外贸邮箱的步骤和注意事项。 一、选择邮箱服务商 注册外贸邮箱首…

【408真题】2009-19

“接”是针对题目进行必要的分析&#xff0c;比较简略&#xff1b; “化”是对题目中所涉及到的知识点进行详细解释&#xff1b; “发”是对此题型的解题套路总结&#xff0c;并结合历年真题或者典型例题进行运用。 涉及到的知识全部来源于王道各科教材&#xff08;2025版&…

byzer plugin install log

离线插件参考地址&#xff1a; Byzer Documentation 离线安装方式&#xff08;错误过程记录&#xff09;&#xff1a; 参考文档&#xff1a;https://docs.byzer.org/#/byzer-lang/zh-cn/extension/README Byzer-lang 支持插件安装&#xff0c;删除&#xff0c;获取列表等。安装…

力扣hot100:146. LRU 缓存

力扣hot100&#xff1a;146. LRU 缓存 听说华为实习笔试考了这题 如何使得插入操作时 O ( 1 ) O(1) O(1)呢&#xff1f;我们需要维护一个时间的长短&#xff0c;以便于取出离现在最长的时间&#xff0c;这个时间比较容易实现&#xff0c;我们维护一个time表示当前时间&#x…

OrangePi AIpro开箱评测

开箱评测 有幸受邀参与了CSDN与OrangePi组织的评测活动&#xff0c;今天刚收到快递。拆开快递能看到保护盒、电源、双头typec线这三样&#xff08;充电器和线有保护膜的我先拆掉了&#xff09; 打开保护盒&#xff0c;能看到上下两块黑色海棉包裹的开发板&#xff08;保护得不…

Java学习【面向对象综合练习——实现图书管理系统】

Java学习【面向对象综合练习——实现图书管理系统】 前期效果图书的创建用户的创建操作的实现完善操作显示图书查找图书新增图书借阅图书归还图书删除图书 前期效果 用户分为普通用户和管理员&#xff0c;登录进系统之后可以对图书进行一系列操作&#xff0c;此时我们要明白&am…

集成Vision Transformer 的概率模型改进了复杂的息肉分割

文章目录 标题摘要方法实验结果 标题 摘要 结直肠息肉在结肠镜检查中被发现&#xff0c;与结直肠癌密切相关&#xff0c;因此息肉分割是诊断和治疗计划的重要临床决策工具。然而&#xff0c;准确的息肉分割仍然是一个具有挑战性的任务&#xff0c;尤其是在涉及微小息肉和其他…

白酒瓶子上的“10781”代表什么?识别粮食酒的3大秘密,买酒也简单

酒瓶子上即便是有“10781”,也不一定是粮食酒! 这可是不少朋友常犯的一个小迷糊。我曾经也经历过这样的误区,直到和一个对酒超级痴迷的哥们儿逛超市,才让我开了窍。 那天,他带了一瓶茅台,在那坐看又看“这茅子,是假的?怎么不是粮食酒呢,都没有10781呢?” 我当时心里还犯嘀咕…

中国大型相亲交友婚恋平台有哪些?测评5款大型恋爱脱单处对象软件

现今呀&#xff0c;生活节奏那是蹭蹭加快&#xff0c;时间也超紧张&#xff0c;工作压力更是山大&#xff01;想要成功脱单&#xff0c;找到一个真正契合的伴侣真的不是一件容易的事儿呢。不过呢&#xff0c;好在随着科技不断地持续发展&#xff0c;社交平台已经变成了一种超流…

windows 11 23H2更新总是失败解决过程

频繁更新失败的困扰 最近一个月以来 windows 11 系统 23H2 更新总是失败&#xff0c;更新失败会撤销更改: 之后会自动重启系统&#xff0c;但是重启进不去系统&#xff0c;屏幕有背光但是不显示任何内容。 这时候只能长按开机键强制关机。每次出现这种情况我都没办法远程连接到…

如果查看svn的账号和密码

一、找到svn存放目录&#xff08;本地默认存放SVN用户信息的目录为&#xff1a;C:\Users\Administrator\AppData\Roaming\Subversion\auth\svn.simple&#xff09;每个人的电脑环境不一样&#xff0c;因人而异。 如果找不到直接搜索svn.simple 二、下载密码查看工具 链接: 百…

易稿是什么?在易稿平台怎么赚钱?

如有一技之长&#xff0c;在网络上赚钱也会相对容易些&#xff0c;比如会写点文章的朋友。下面就给大家分享一个写作赚钱的靠谱平台——易稿&#xff1a; 易稿简介 易稿&#xff08;原创稿件交易一站式服务平台&#xff09;隶属于上海雅鲁网络科技有限公司旗下网站&#xff0…

如何保证员工在精益变革中始终保持积极的态度?

在当今日新月异的商业环境中&#xff0c;企业为了保持竞争力&#xff0c;需要不断寻求创新和变革。精益变革作为一种提升效率和质量的有效手段&#xff0c;已逐渐成为企业转型升级的关键。然而&#xff0c;变革往往伴随着挑战和不确定性&#xff0c;如何保证员工在精益变革中始…

Ovid医学库文献如何在家查找下载

今天讲的数据库是一个知名医学库——Ovid Ovid隶属于威科集团的健康出版事业集团&#xff0c;与LWW、Adis等公司属于姊妹公司。Ovid数据库在医学外文文献数据库方面占据绝对地位&#xff0c;目前已有包涵人文、科技等多领域数据库300个&#xff0c;其中80多个是生物医学数据库…

单片机超声波测距+WTD588D语音播报的设计

第一章 绪论 1.1 课题设计目的及意义 1.1.1设计的目的 随着科学技术的快速发展&#xff0c;超声波在测距中的应用越来越广。但就目前的急速水平来说&#xff0c;人们可以具体利用的测距技术还十分有限&#xff0c;因此&#xff0c;这是一个正在蓬勃发展而又有无限前景的技术…

C++多态总结与原理、菱形继承问题

文章目录 多态什么是多态 多态的定义及实现多态的构成条件虚函数 虚函数的重写虚函数重写的两个例外协变 重写C11 override 和 final重载、覆盖(重写)、隐藏(重定义)的对比 抽象类概念接口继承和实现继承小结 多态的原理虚函数表多态的原理动态绑定与静态绑定 单继承和多继承关…

Python 机器学习 基础 之 模型评估与改进 【网格搜素】的简单说明

Python 机器学习 基础 之 模型评估与改进 【网格搜素】的简单说明 目录 Python 机器学习 基础 之 模型评估与改进 【网格搜素】的简单说明 一、简单介绍 二、网格搜索 1、简单网格搜索 2、参数过拟合的风险与验证集 3、带交叉验证的网格搜索 附录 一、参考文献 一、简单…

英语学习笔记27——Mrs. Smith‘s living room

Mrs. Smith’s living room 史密斯太太的客厅 词汇 Vocabulary living room 客厅 都成&#xff1a;living liveing 生活    room 屋子 搭配&#xff1a;in the living room 在客厅 文化&#xff1a;西方人一般都在起居室活动&#xff0c;所以客厅很大&#xff0c;一般可以…

联想桌面助手接入攻略

产品接入文档 1.产品介绍 1.1 产品功能介绍 联想桌面助手&#xff0c;是针对Windows用户的桌面开放平台产品&#xff0c;该产品致力于为用户提供更便捷、更高效的PC服务&#xff0c;同时为开发者提供有效触达用户的方式。 官方下载体验地址&#xff1a; 联想电脑_电脑管家_弹…

基于51单片机多功能太阳能充电器设计

1 绪论1.1 本课题研究背景及现状 当代社会随着一些不可再生资源如煤炭&#xff0c;石油等日益减少&#xff0c;使得各国社会经济越来越受能源问题的约制&#xff0c;因此许多国家开始逐渐的实行“阳光计划”&#xff0c;开发洁净的能源如太阳能&#xff0c;用以成为本国经济发…