说明:

(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)问题阐述;

(2)解决策略;

一:浏览器存储介质:

1.cookie;

2.webStorage;

Session Storage;

Local Storage;


零:本篇博客合理性说明;

(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中的数据也就没了;

一个更加可信的理解:

● 打开浏览器,新开一个窗口去访问A网站,那么在这个窗口中就会创建Session  Storage;然后,在涉及“关闭恢复标签页”、“跳链回退标签页”、“新tab页是否共享”等;;可以可以参考【sessionStorage什么时候失效】;

● 然后,一个大概率靠谱的点是:Session Storage和原先的Session不一样,Session可以跨窗口,但是session storage是页面临时缓存存储,不能跨窗口;

● 在【sessionStorage不能跨窗口取值】中,就明确提及了这一点;

……………………………………………………

Local Storage;

(1)Local Storage的数据是保存在本地(磁盘)的;;我们关闭浏览器、重启电脑后,这些数据都会在;(这其实也是数据持久化的一种表现)

(2)Session Storage和Local Storage能存【大小在5M左右的数据】,这比cookie大很多;

(3)而且,在安全性上,Session Storage和Local Storage要比cookie好一些;;;cookie会被请求携带的,有可能会有一些cookie篡改、cookie挟持等安全问题;

(4)通过webStroage,大多网站数据进行缓存后,可以更快加载,也能为并发减轻一定压力。

32:第三章:开发通行证服务:15:浏览器存储介质,简介;(cookie,Session Storage,Local Storage)相关推荐

  1. 33:第三章:开发通行证服务:16:使用Redis缓存用户信息;(以减轻数据库的压力)

    说明: (1)声明:这个其中的区别和相同点,要清楚: ● 在[32:第三章:开发通行证服务:15:浏览器存储介质,简介:]中,前端使用[把"用户基本信息"存到Session Sto ...

  2. 26:第三章:开发通行证服务:9:【注册/登录】接口:验证码校验OK后,先根据手机号去查查该用户是否已存在,如果用户不存在就创建这个用户;(tkmybatis查询构建查询条件,雪花算法,枚举类等等)

    说明: (1)本篇博客内容:继续开发[注册/登录]接口: ● 在[25:第三章:开发通行证服务:8:[注册/登录]接口:接收并校验"手机号和验证码"参数:]中,[注册/登录]接口, ...

  3. 腾讯云存储产品介绍第三章-云存储服务

    腾讯云存储服务 存储网关CSG 存储迁移CDM 日志服务CLS 存储网关CSG 存储网关(Cloud Storage Gateway)是一种混合云存储方案,即插即用,屏蔽后端存储差异,实现本地存储与公 ...

  4. 20:第三章:开发通行证服务:3:在程序中,打通redis服务器;(仅仅是打通redis服务器,不涉及具体的业务开发)

    说明: (1)本篇博客需要注意的点: ● 本篇博客仅仅是打通redis服务(也就是我们的程序,可以操作redis服务器),不涉及[redis服务,在项目中的具体应用],也不涉及[具体业务的开发]: ● ...

  5. 31:第三章:开发通行证服务:14:开发【获得用户基本信息,接口】;(需要根据前端对返回数据的要求,创建一个只包含非隐私信息的AppUserVO类,去包装返回给前端的数据)

    说明: (1)本篇博客内容:开发[获得用户基本信息,接口]: 目录 零:本篇博客合理性说明:(或者说是:[获得用户基本信息,接口]是什么) 一:正式开发: 1.在[api]接口工程的UserContr ...

  6. 毕业设计——第三章 开发方法及系统实现(6)(完结)

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...

  7. 【黑金动力社区】【531体验板教程】 第三章 开发环境(三)

    黑金动力社区:http://www.heijin.org 一. 引言 在建立工程之前,将我们的实验板通过USB线连接到电脑上,也许这个时候会弹出USB不能用的窗口,如果遇到这个问题,直接从群共享里下载 ...

  8. 毕业设计——第三章 开发方法及系统实现(5)

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...

  9. 《Linux From Scratch》第二部分:准备构建 第三章:软件包与补丁- 3.1. 简介

    本章列出了一个需要下载的软件包列表,它们用来构建一个基本的 Linux 系统.所列出来的版本号对应着该软件的确定可以正常工作的版本,本书是以它们为基础的.我们强烈反对使用更新一些的版本,因为某个版本能 ...

最新文章

  1. ubuntu/debian安装最新版docker和docker-compose
  2. python modbus tk 库_如何使用modbus tk rtu(python)设置简单的从机和主机
  3. RGB_YUV_YCbCr
  4. C++:Static修饰变量 vs Static修饰函数
  5. 每次请求都要建立连接吗?
  6. RDS Mysql中binlog日志查看
  7. 从镜头到滤光片 解读光学透雾监控摄像机
  8. ESP8266学习笔记6:ESP8266规范wifi连接操作
  9. XidianOJ 1090 爬树的V8
  10. 2022年备考[嵌入式系统设计师]你准备好了吗?
  11. wp兼容了android应用程序,WP兼容了Android应用 微软的春天就来了?
  12. 【yum】Peer cert cannot be verified or peer cert invalid
  13. linux认证加k8s认证,如何快速验证您的Kubernetes配置文件?
  14. matlab中minigrid,[转载][转载]matlab画地图的工具:worldmap和m_map
  15. JS中定义函数的几种方法
  16. Linux 硬盘管理工具
  17. JQuery渐变色动画效果
  18. 解决无法将这个证书验证到一个受信任的证书颁发机构方法
  19. AAAI 2022主题论文推荐——Semantic Segmentation
  20. 用计算机收方怎么算,计算机结合全站仪 在定点定位收方中的应用.pdf

热门文章

  1. goaheadlinux移植_goAhead2.5嵌入式web服务器移植
  2. Spring Security OAuth2.0认证授权
  3. python单词个数_python 统计单词个数
  4. C++中的成员函数与非成员函数
  5. 数据结构与算法分析之---部分排序算法的实现
  6. update语句详解
  7. 2020.3网易互娱游戏客户端开发面试
  8. Windows 语言版本导致CMD %data%格式不同的解决方法
  9. 愤怒的TryCatch
  10. Ubuntu 14.04 安装 SteamOS 会话