存储方式
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的信息
- 不在不同浏览器窗口共享