Skip to content

钱塘江上潮信来,今日方知我是我

http协议是无状态协议,请求一去一回就结束了,服务器没有客户端的信息,下一次请求,如何让服务器知道是我呢?

cookie原始是用来维持状态的,是一个文本,附着在请求上,携带用户信息,服务器检查cookie的时候就知道是我了

特点

  1. 大小只有4k
  2. 键值对形式
  3. 紧跟域名(可以设置域名domain),同域名下的请求都会携带cookie (为什么业务服务域名和CDN服务域名不同,因为CDN是静态资源,不必携带cookie,不同的域名,就可以不携带cookie了,节省资源)

Web Storage

cookie的特点也是缺点,且不是专门为了存储搞的。Web Storage是专门为了存储搞的

Local Storage和Session Storage

Local Storage是持久化本地存储,永远有效,除非手动删除 Session Storage是会话级别的,页面关闭,存储释放 Local Storage、Session Storage、cookie都遵循同源策略,Session Storage有不同,即使同源,两个窗口的不共享(从一个窗口打开,会带上上一个窗口的Session Storage,但是不共享)

特点

  1. 大(5-10M)
  2. 键值对形式
  3. 不与服务端发生通信

(为了性能优化,有时会将base64或者小js、css存储在Web Storage)

IndexDB

IndexDB是一个运行在浏览器上的非关系型数据库(牛逼plus了),大于250M,可以存储字符串和二进制数据