mirror of
https://github.com/NohamR/knowledge-kit.git
synced 2026-05-25 04:17:17 +00:00
2.2 KiB
2.2 KiB
前端持久化
- 早期的前端存储主要是 cookie,后来经过前端工程师不屑的追求以及开发,有了后来的 localStorage 和 sessionStorage 技术。
- 再到后来技术演进有了 indexDB 技术,也就是一个事务型的 key-value 形式的数据库
- 说说 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 的网站,随机发送包含针对这个网站的相关产品广告的垃圾邮件给这些用户