Files
knowledge-kit/第二部分 Web 前端/2.15.md
2020-02-25 17:35:10 +08:00

26 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 前端持久化
1. 早期的前端存储主要是 cookie后来经过前端工程师不屑的追求以及开发有了后来的 localStorage 和 sessionStorage 技术。
2. 再到后来技术演进有了 indexDB 技术,也就是一个事务型的 key-value 形式的数据库
3. 说说 cookie 有了,为什么还要有 localStorage因为 cookie 虽然可以存储一些数据,但是大小非常有限,也就是 4k。并且 cookie 的本质工作是用来追踪浏览器用户的信息,因为 HTTP 是无状态协议,即服务器不知道用户上一次做了些什么,这严重阻碍了 Web 应用程序的时下。也就是通过 HTTP 连接无法知道用户干了些什么,比如说当用户在浏览一个商城的时候无法记录他购买了什么商品,介于此我们可以使用 cookie 技术用来绕开 HTTP 无状态的的特点,服务器可以设置或读取 cookie 中包含的信息,借此维护用户和服务器会话中的状态。
cookie 的另一个日常应用场景就是当用户勾选了某个网站的“下次自动登录”,那么在下次访问这个网站的时候,用户发现没有输入账号和密码就已经是登录状态。这是因为前一次登录的时候服务器发送了包含登录凭证(用户名和密,以及包含登录时长 的 token 信息)的 cookie 到用户的硬盘上,第二次登录时发现登录时长还有效,那么则自动登录
4. 对于存储数据这个功能来说cookie 的缺陷
* cookie 会被附加到每个 HTTP 请求的头部去,所以如果用来存储数据,那么每次请求就加大了请求数据量
* cookie 在 HTTP 请求中是明文传递的,所以存在安全性问题(除非 HTTPS
* cookie 只有4k的存储空间
5.cookie 的另一种不好的方面表现在当用户去访问某个网站的时候通过搜索引擎查到的这个网站包含一种叫做网页臭虫的图片通常是1像素大小以便于隐藏它们的作用是将所有访问过此页面的计算机写入 cookie而后电子商务网站读取这些 cookie 信息,并寻找写入这些 cookie 的网站,随机发送包含针对这个网站的相关产品广告的垃圾邮件给这些用户