Cookie的利弊以及与web storage的区别
cookie的优点:具有极高的扩展性和可用性
- 通过良好的编程,控制保存在cookie中的session对象的大小。
- 通过加密和安全传输技术,减少cookie被破解的可能性。
- 只有在cookie中存放不敏感的数据,即使被盗取也不会有很大的损失。
- 控制cookie的生命期,使之不会永远有效。这样的话偷盗者很可能拿到的就是一个过期的cookie。
cookie的缺点:
- cookie的长度和数量的限制。每个domain最多只能有20条cookie,每个cookie长度不能超过4KB。否则会被截掉。
- 安全性问题。如果cookie被人拦掉了,那个人就可以获取到所有session信息。加密的话也不起什么作用。
- 有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务端保存一个计数器。若吧计数器保存在客户端,则起不到什么作用。
在html5中web storage包括两种存储方式:sessionstorage和localstorage
sessionstorage用于本地存储一个会话(session)中的数据,这个数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionstorage不是一种持久化的本地存储,仅仅是会话级别的存储。
而localstorage用于持久化的本地存储,除非主动删除数据,否则数据是永远也不过期的。
web storage的概念和cookie相似,区别是它是为了更大的容量存储设计的。cookie大小受限,并且每次都请求一个新的页面的时候后cookie都会被发送过去,另外cookie还需要指定作用域,不可以跨域调用。
cookie的作用是与服务器进行交互,作为HTTP规范的一部分存在,而web storage仅仅是为了在本地存储数据而生。
localstorage和sessionstrage都具有相同的操作方法,例如setItem,getItem和removeItem等。