当前位置:网站首页>32:第三章:开发通行证服务:15:浏览器存储介质,简介;(cookie,Session Storage,Local Storage)
32:第三章:开发通行证服务:15:浏览器存储介质,简介;(cookie,Session Storage,Local Storage)
2022-07-05 10:33:00 【小枯林】
说明:
(1)简单介绍浏览器存储介质:cookie,Session Storage,Local Storage;
(2)目前为止的、可以确定的几点:
● 这些存储介质都是浏览器的,我们要想使用这些存储介质需要浏览器允许;
● 我们可以在后端向前端响应的时候,设置cookie;;前端拿到后,可以把其设置到浏览器中;
● 然后,目前感觉“Session Storage,Local Storage的设置”,更多是前端需要做的工作;(比如,【把数据存到Session Storage,Local Storage中】、【前端二次请求的时候,不再去请求后端接口,而是去“Session Storage,Local Storage”中取】、【某些情况下,需要删除Session Storage,Local Storage中的内容】等等;;;这些工作,感觉更多是需要在前端代码中编写的)
(3)本篇博客,只是对浏览器存储介质作了一个入门级别的介绍,只是一些皮毛;后续可以参考【localStorage、sessionStorage 和 Cookie 区别及用法】、【localStorage和sessionStorage本地存储】等;
目录
零:本篇博客合理性说明;
(1)问题阐述;
● 我们在【31:第三章:开发通行证服务:14:开发【获得用户基本信息,接口】;】,这个接口是用户获取用户基本信息的;
● 而在本项目中,几乎在每个页面在加载的时候,很多都会去获取一下用户信息;
● 这也意味着,如果就这样的话;;;那么,我们几乎在加载每个页面的时候,前端都会默默的去调用【获取用户基本信息,接口】,以便能获取到用户基本信息;
● 那么,如此一来,【获取用户基本信息,接口】的压力就会很大;(因为,我们只要进入了这个网站,刷新页面,点击页面的时候,每个页面都会默默去调用这个接口,,,这个流量是很大的)
● 即使如果【获取用户基本信息,接口】没有操作数据库,请求这个接口的流量也是个很大的负担;
……………………………………………………
【获取用户基本信息,接口】主要有两个特点:一是这个接口提供的信息,一般是不太会经常修改的;二是,很多地方都需要这个接口提供的信息,即这个接口的请求流量很大;
(2)解决策略;
● 【获取用户基本信息,接口】这个接口查询的是“用户的基本信息”;;;而“用户的基本信息”,往往并不是所有的用户都会频繁的去修改的;
● 所以,我们可以把“用户的基本信息”,存储到浏览器上;这样一来,可以减轻接口的压力;
● 在我们项目中,我们前端在获取到用户基本信息后,把这个用户基本信息保存在了浏览器的Session Storage中;
● 比如,我们在访问项目,并更改/完善用户信息后,可以看到Session Storage;
● 这样一来,在第一次需要“用户基本信息”的时候,其会去实际调用后端的【获取用户基本信息,接口】;;;但是,只要用户不关闭浏览器,当前端页面再需要“用户基本信息”的时候,其就不会再去调用后端的【获取用户基本信息,接口】了,而是直接从Session Storage中获取了;;;;;而这,【获取用户基本信息,接口】的压力就会降低,节省了大量的流量;
一:浏览器存储介质,简介;
1.cookie;
(1)cookie可以看做是一种缓存;
(2)在早期的时候,网站中使用的是比较多的;比如本项目的uid和utoken就是保存在cookie中的;通过cookie中保存的数据,前端和后端就可以进行一些数据的交互;
(3)cookie是保存在浏览器中的:
● 如果不设置其过期时间,那么cookie是保存在内容中的;如果我们关闭浏览器,那么和这个cookie也就没了;(这其实有点类似session会话的效果)
● 如果设置了过期时间,那么cookie是保存在硬盘中的;关闭浏览器后,这个还是存在的;一般,很多网站中,cookie的过期时间设为7天;
(4)cookie只能存字符串内容;;;像对象、List这些,我们需要把其转成JSON字符创,然后再保存的;
(5)cookie只能存【大小<4k左右的字符串】;;;如果一个字符串太大的话,就不能存到cookie中了;
(6)用户在使用浏览器的时候访问某个网站的时候,可以禁用浏览器的cookie;;;如此一来,即使这个网站系统在代码中,有“向浏览器存储cookie”的代码,其也存不了;
在HTML5以后,那么浏览器可以使用webStorage(包括sessionStorage、localStorage),其实也是类似一种数据存储的表现形式,是对cookie的一种改良。
2.webStorage;
Session Storage;
可以这样理解:
● 用户打开浏览器,去访问A网站,直到用户彻底关掉浏览器:这个时间内,我们称之为一个会话(session);
● 在这个过程中,浏览器就会针对A网站有一个Session Storage;
● 如果A网站的代码中有向Session Storage中存数据的动作,那么数据就会存到Session Storage中去;
● 只要我们不关闭浏览器,这些存在Session Storage中的数据就会一直在;;;但是,一旦我们关闭了浏览器,这个会话(session)也就结束了,那么那些存在Session Storage中的数据也就没了;
……………………………………………………
Local Storage;
(1)Local Storage的数据是保存在本地(磁盘)的;;我们关闭浏览器、重启电脑后,这些数据都会在;(这其实也是数据持久化的一种表现)
(2)Session Storage和Local Storage能存【大小在5M左右的数据】,这比cookie大很多;
(3)而且,在安全性上,Session Storage和Local Storage要比cookie好一些;;;cookie会被请求携带的,有可能会有一些cookie篡改、cookie挟持等安全问题;
(4)通过webStroage,大多网站数据进行缓存后,可以更快加载,也能为并发减轻一定压力。
边栏推荐
- 非技術部門,如何參與 DevOps?
- Apple 5g chip research and development failure? It's too early to get rid of Qualcomm
- 微信小程序触底加载与下拉刷新的实现
- [dark horse morning post] Luo Yonghao responded to ridicule Oriental selection; Dong Qing's husband Mi Chunlei was executed for more than 700million; Geely officially acquired Meizu; Huawei releases M
- Taro进阶
- 沟通的艺术III:看人之间 之倾听
- 分享.NET 轻量级的ORM
- Share Net lightweight ORM
- 赛克瑞浦动力电池首台产品正式下线
- Node の MongoDB Driver
猜你喜欢
第五届 Polkadot Hackathon 创业大赛全程回顾,获胜项目揭秘!
Based on shengteng AI Yisa technology, it launched a full target structured solution for video images, reaching the industry-leading level
2022年危险化学品生产单位安全生产管理人员特种作业证考试题库模拟考试平台操作
爬虫(9) - Scrapy框架(1) | Scrapy 异步网络爬虫框架
WorkManager的学习二
2022年化工自动化控制仪表考试试题及在线模拟考试
How does redis implement multiple zones?
Crawler (9) - scrape framework (1) | scrape asynchronous web crawler framework
Today in history: the first e-book came out; The inventor of magnetic stripe card was born; The pioneer of handheld computer was born
How can non-technical departments participate in Devops?
随机推荐
AtCoder Beginner Contest 258「ABCDEFG」
How does redis implement multiple zones?
手机厂商“互卷”之年:“机海战术”失灵,“慢节奏”打法崛起
WorkManager的学习二
SQL Server monitoring statistics blocking script information
Review the whole process of the 5th Polkadot Hackathon entrepreneurship competition, and uncover the secrets of the winning projects!
[observation] with the rise of the "independent station" model of cross-border e-commerce, how to seize the next dividend explosion era?
What are the top ten securities companies? Is it safe to open an account online?
脚手架开发基础
Learning notes 5 - high precision map solution
小红书自研KV存储架构如何实现万亿量级存储与跨云多活
[可能没有默认的字体]Warning: imagettfbbox() [function.imagettfbbox]: Invalid font filename……
Learning note 4 -- Key Technologies of high-precision map (Part 2)
重磅:国产IDE发布,由阿里研发,完全开源!
LDAP概述
Learning Note 6 - satellite positioning technology (Part 1)
非技術部門,如何參與 DevOps?
DGL中的消息传递相关内容的讲解
BOM//
赛克瑞浦动力电池首台产品正式下线