1、cookie
作用:用于浏览器和服务器端进行通信,保存在浏览器中
特点:保存在浏览器端,容易被截获,不安全
大小:4KB 每次发送请求都会携带,导致占用带宽
生命周期:
会话cookie:浏览器从打开到关闭的过程
人为设置cookie:人为设置的时间
cookie特点:
- cookie的大小受限制,cookie大小被限制在4KB。
- cookie也可以设置过期的时间,默认是会话结束的时候,当时间到期自动销毁。
- 一个域名下存放的cookie的个数是有限制的,不同的浏览器存放的个数不一样,一般为20个。
- 用户每请求一次服务器数据,cookie会随着这些请求发送到服务器。
- cookie数据始终在同源的http请求中携带(即使不需要),这也是Cookie不能太大的重要原因
Cookie和Session区别:
- cookie数据存放在客户的浏览器上,session数据放在服务器上。
- cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。
- session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用cookie。
- 单个cookie保存的数据不能超过4K,Session 可存储数据远高于 Cookie。
- Cookie 可设置为长时间保持,比如我们经常使用的默认登录功能,Session 一般失效时间较短,客户端关闭或者 Session 超时都会失效。
- Cookie 只能保存 ASCII,Session 可以存任意数据类型。
2、sessionStorage(会话存储)
生命周期:浏览器打开到关闭的过程
大小:5M
保存的位置:浏览器端
方法都有哪些:
setItem('key',value) 设置item对象
getItem('key') 得到item对象的值
removeItem('key') 移除item对象
作用域:窗口级别的,不同窗口间的sessionStorage数据不能共享的
3、lovcalStorage(永久存储)
生命周期:永久,除非人为删除
大小:5M甚至更大
保存的位置:浏览器端
方法都有哪些:
setItem('key',value) 设置item对象
getItem('key') 得到item对象的值
removeItem('key') 移除item对象
clear//清除记录
localStorage特点:
- 保存的数据长期存在,下一次访问该网站的时候,网页可以直接读取以前保存的数据。
- 大小为5M左右。
- 仅在客户端使用,不和服务端进行通信。
- 存储的信息在同一域中是共享的。
- localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡。
sessionStorage和localStorage区别:
- localStorage是永久存储,除非手动删除。sessionStorage当会话结束(当前页面关闭的时候,自动销毁)
- localStorage只要在相同的协议、相同的主机名、相同的端口下,就能读取/修改到同一份localStorage数据。