你用过哪些存储,都有什么区别
Cookie session
localStorage sessionStorage(属于H5的)
Cookie是浏览器的属性 ,在客服端存储信息, 大小为4KB,一般用于存储用户名和密码。
一、主要内容包括:
名字、值 、过期时间 、路径和域。如果不设置时间,cookie存活的时间就是浏览器会话期间,浏览器关闭之后cookie就会消失,使用成为会话cookie。 客户在第一次登录的时候会发送cookie属性给服务器 ,服务器返回cookie方法 。以后客服的每一次请求都会带有cookie属性。
Session是基于cookie的存储,客服端请求创建session的时候 ,服务端先检查客服端的请求里是否已经有session标识(session id),如果有就不创建,说明客服端已经创建过,客服端就会按照 session id把这个session检索出来使用,如果没有那就创造一个session 并生成与此相关的session id,session id是一个不被重复 也不容易被找到规律以仿造的字符串,这个session id 将被这次的响应返回给客服端保存,保存这个session id的方式采用的是cookie ,这样在交互过程中浏览器会按照规则把这个表示发送给服务端。
二、cookie和session的区别:
(1).Cookie数据存放在客服端的浏览器上 安全性不高
(2).Session数据存放在服务端,安全性较高,会在一定的时间内保存在服务端,当访问增多的时候 性能会降低。
(3).Session不能区分路径,不支持跨域访问 session保存的是对象
(4).Cookie 可以限制在某个路径下 支持跨域访问 保存的是字符串
(5).Session是借助cookie才能正常工作,如果cookie被禁止了 那么session也不能运行。
三、localStorage sessionStorage cookie的区别:
共同点:都是保存在浏览器端,而且同源
不同:
(1).cookie大小为4K localStorage大小为5M sessionStorage的大小为20M
(2). cookie数据始终在同源的HTTP中请求(即使不需要),在浏览器端和服务端回来传递,而localStorage sessionStorage不会自动把数据发送给服务器,仅在本地保存。Cookie数据还有路径
(3). 数据有效期不同,sessionStorage仅在当前窗口关闭之前有效,localStorage始终有效,窗口或浏览器关闭也一直在,cookie只在设置的期间有效,即使关闭窗口或浏览器
(4).作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使同一个页面,localStorage在所有同源窗口中都共享。Cookie也是在所有同源的窗口中共享。