存储方式

163 阅读1分钟

存储方式

cookie,session,localStorage,sessionStorage,indexDB 分析角度: 生命周期,存放位置,大小,作用域,应用

cookie

最大的作用就是存储sessionId用来唯一标识用户。

  • cookie数据始终在同源的http请求中携带,在浏览器和服务器之间来回传递。
  • cookie数据不能超过4K。
  • 在过期之间一直有效
  • 只适合保存很小的数据(如回话标识)
  • 在同源窗口共享

cookie的字段

  • name:cookie的名称
  • value:cookie的值
  • domain:可以访问此cookie的域名
  • path:可以访问此cookie的页面路径
  • expires/Max-Age:设置cookie超时时间,默认值是session,cookie和session一起失效
  • size:cookie的大小
  • http: httponly如果设为true,只在http请求头中会带有此cookie的信息,不能通过document.cookie访问
  • secure:是否只能通过https传递此条cookie

cookie的编码方式

encodeURL()

Cookie和Session

  • cookie数据存放在客户的浏览器上,session数据存放在服务器上
  • cookie不是很安全,可以分析存放在本地的cookie进行cookie欺骗,session更安全
  • session会在一定时间保存在服务器上,访问增多时会占用服务器的性能,考虑到减轻服务器性能,应使用cookie。
  • 单个cookie保存的数据不能超过4k,很多浏览器限制一个站点最多保存20个cookie。

localStorage

  • 可以达到5M或更大。
  • 手动清除前始终有效
  • 用于存储持久数据,可以用来在页面传递参数
  • 在所有同源窗口共享

sessionStorage

  • 仅在当前网页会话下有效
  • 可以保存5M的信息
  • 不在不同浏览器窗口共享