一、什么是浏览器会话
会话是浏览器和服务器之间的多次请求和响应,为了实现某个功能,浏览器和服务器之间可能会产生多次的请求和响应,从浏览器访问服务器开始,到访问服务器结束,浏览器关闭为止,这期间产生的多次请求和响应加在一起就称为浏览器和服务器的一次会话
。
说人话,会话可以理解为,我们打开了一个浏览器标签访问了我们的网站,浏览器就默认生成了一个会话,只要我们不关闭这个标签页,这个会话就一直存在,期间我们的站点产生的接口调用和服务器响应都属于这次会话的一部分。
二、什么是cookie
1、储存在用户本地终端上的数据,是网站为了识别用户和跟踪会话而存储在用户本地终端中的文本数据。
2、Cookie是保存在客户端的纯文本文件。比如txt文件。所谓的客户端就是我们自己的本地电脑。
三、什么是sessionstorage
1、sessionStorage
用于本地存储一个会话(session)
当中的数据。
2、这些数据只有在同一个会话当中的页面才可以访问,并且当会话结束之后数据也会跟着销毁。
3、sessionStorage
在页面会话结束时会被清除,也就是讲一个页面上的sessionStorage在页面刷新或者恢复页面的时候都不会丢失或者被清空。
sessionStorage 属性允许你访问一个,对应当前源的 session Storage 对象。它与 localStorage 相似,不同之处在于 localStorage 里面存储的数据没有过期时间设置,而存储在 sessionStorage 里面的数据在页面会话结束时会被清除。
四、什么是 localstorage
1、localStorage
用于持久化的本地存储。除非是你主动删除数据,否则的话,数据是永远也不会过期的。
五、cookie 、sessionstorage 、localstorage三者的区别
共同点:
都是保存在浏览器端、且同源的
区别:
(1)存储空间
:cookie存储空间最小、只有4kb、但是http请求中可以携带cookie,loacalstorage、sessionstorage存储空间5m或更大
(2)有效期
:cookie不设置时间、关闭浏览器销毁,sessionstorage关闭浏览器(窗口或者标签页)销毁,loacalstorage不手动清除一直保留
(3)作用域
:sessionStorage不在不同浏览器窗口(标签页)共享、即使同源,cookie、localstorage在所有同源窗口之间共享
其他
(1)sessionStorage
属性允许你访问一个 session Storage
对象。它与 localStorage
相似。
(2)不同之处在于 localStorage
里面存储的数据没有过期时间设置,而存储在 sessionStorage
里面的数据在页面会话结束时会被清除。
(3)sessionStorage
在页面会话在浏览器打开期间一直保持,并且重新加载或恢复页面仍会保持原来的页面会话。
(4)不同tab之间就算相同url,sessionStorage
也是不会共享的。sessionStorage
只存在于当前会话中。
(5)使用window.open
或者点击链接跳转
的页面,新页面的sessionStorage
会拷贝老页面
的。但两者之间并无关联,还是两个会话。