cookie
定义: HTTP Cookie(也叫 Web Cookie或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。cookie
使基于无状态的 HTTP 协议记录稳定的状态信息成为了可能。
特点:
①.大小受限制,cookie
的大小被限制在4KB
②.可以设置过期时间
③.同一个域名下存放的cookie
的数量是有限的,一般为20个,不同浏览器不同
④.用户每次发送请求,cookie
都回随着请求一起被发送到服务器
⑤.cookie
数据始终在同源的http请求中携带(即使不需要),这也是cookie
不能太大的重要原因
session
定义:session
代表着服务器和客户端一次会话的过程。 session
对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 session
对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当客户端关闭会话,或者 session
超时失效时会话结束。
cookie和session的区别
①.cookie
数据存放在客户的浏览器上,session
数据放在服务器上。
②.cookie
不是很安全,别人可以分析存放在本地的cookie
并进行cookie
欺骗,考虑到安全应当使用session
。
③.session
会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用cookie
。
④.单个cookie
保存的数据不能超过4K,session
可存储数据远高于 cookie
。
⑤.cookie
可设置为长时间保持,session
一般失效时间较短,客户端关闭或者 session
超时都会失效。
⑥.cookie
只能保存 ASCII,session
可以存任意数据类型。
localStorage
定义: 这是一种持久化的存储方式,也就是说如果不手动清除,数据就永远不会过期。它也是采用Key - Value的方式存储数据,能保存更大的数据。
特点:
①.保存的数据长期存在,下一次访问该网站的时候,网页可以直接读取以前保存的数据,localStorage是永久存储,除非手动删除。
②.大小为2.5MB 到 10MB
③.仅在客户端使用,不和服务器进行通信
④.存在的信息在同一域中是共享的,只要在相同的协议、相同的主机名、相同的端口下,就能读取/修改到同一份localStorage数据
⑤.localStorage
本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡。
语法:
保存数据:
localStorage.setItem("key", "value");
读取数据:
localStorage.getItem("key");
删除数据:
localStorage.removeItem("key");
删除所有:
localStorage.clear();
sessionStorage
定义: 和服务器端使用的session类似,是一种会话级别的缓存,关闭浏览器会数据会被清除。不过有点特别的是它的作用域是窗口级别的,也就是说不同窗口间的sessionStorage数据不能共享的。使用方法(和localStorage完全相同)
特点:
①.sessionStorage当会话结束(当前页面关闭的时候,自动销毁)
②.不同窗口间的sessionStorage数据不能共享的。
语法: 同localStorage一样
IndexedDB
这个我还没学