JavaScript知识

浏览器存储

特性 cookie localStorage sessionStorage indexDB
数据生命周期 一般由服务器生成,可以设置过期时间 除非被清理,否则一直存在 页面关闭就清理 除非被清理,否则一直存在
数据存储大小 4K 5M 5M 无限
与服务端通信 每次都会携带在header 中,对于请求性能影响 不参与 不参与 不参与

cookie与session

cookie保存在客户端(浏览器);session保存在服务端(redis)
Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID 为标识符来存取服务器端的Session存储空间。

例子:
当客户端第一次请求登录服务器的时候,服务器随机下发一个字符串sessionId给浏览器,以cookie的形式保存在客户端。当下次登录的时候会带上这个cookie,从而识别你是谁。

1.cookie的优点:

  • .极高的扩展性和可用性
  • .通过良好的编程,控制保存在cookie中的session对象的大小。
  • .通过加密和安全传输技术(SSL),减少cookie被破解的可能性。
  • .只在cookie中存放不敏感数据,即使被盗也不会有重大损失。
  • .控制cookie的生命期,使之不会永远有效。偷盗者很可能拿到一个过期的cookie。

2.cookie的缺点:

  • .cookie数量和长度的限制。每个domain最多只能有20条cookie,每个cookie长度不能超过4KB,否则会被截掉。
  • .安全性问题。如果cookie被人拦截了,那人就可以取得所有的session信息。即使加密也与事无补,因为拦截者并不需要知道cookie的意义,他只要原样转发cookie就可以达到目的了。
  • .有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务器端保存一个计数器。如果我们把这个计数器保存在客户端,那么它起不到任何作用。

参考文章

js 基本类型与引用类型的区别

12 个非常有用的 JavaScript 技巧

为什么推荐使用 === 不推荐 ==

posted @ 2021-04-21 09:56  万般自然  阅读(39)  评论(0)    收藏  举报