简介:很多概念不清或忘记,重新构建自己的知识体系。每天问自己1~多个问题。我是菜鸟 成为大神之路!
1. 浏览器有哪些存储方式?
2. Cookie 和 Session的机制?
(1)Cookie
机制:link👁
- ①如果不在浏览器中设置过期时间,
cookie
被保存在内存中,生命周期随浏览器的关闭而结束,这种cookie
简称会话cookie
。 - ②如果在浏览器中设置了
cookie
的过期时间,cookie
被保存在硬盘中,关闭浏览器后,cookie
数据仍然存在,直到过期时间结束才消失,这种cookie简称久性cookie
。
cookie
是服务器发给客户端的特殊信息,cookie
是以文本的方式保存在客户端,每次请求时都带上它
(2)Session
机制:
当服务器收到请求需要创建session
对象时,首先会检查客户端请求中是否包含sessionid
。如果有sessionid
,服务器将根据该id
返回对应session
对象。如果客户端请求中没有sessionid
,服务器会创建新的session
对象,并把sessionid
在本次响应中返回给客户端。通常使用cookie
方式存储sessionid
到客户端,在交互中浏览器按照规则将sessionid
发送给服务器。如果用户禁用cookie
,则要使用URL重写,可以通过response.encodeURL(url)
进行实现;API对encodeURL的结束为,当浏览器支持Cookie
时,url
不做任何处理;当浏览器不支持Cookie
的时候,将会重写URL
将SessionID
拼接到访问地址后。
3. 什么是久性cookie,会话cookie?
在 2 问
①使用Cookie
4. 什么是Web Storage?
- Web Storage存储机制是对HTML4中cookie存储机制的一个改善。由于cookie存储机制有很多缺点,HTML5不再使用它,转而使用改良后的Web Storage存储机制。
- 本地数据库是HTML5中新增的一个功能,使用它可以在客户端本地建立一个数据库,原本必须保存在服务器端数据库中的内容现在可以直接保存在客户端本地了,这大大减轻了服务器端的负担,同时也加快了访问数据的速度。
我们知道,在HTML4中可以使用cookie在客户端保存诸如用户名等简单的用户信息,但是,通过长期的使用,你会发现,用cookie存储永久数据存在以下几个问题:
- 1.大小:cookie的大小被限制在4KB。
- 2.带宽:cookie是随HTTP事务一起被发送的,因此会浪费一部分发送cookie时使用的带宽。
- 3.复杂性:要正确的操纵cookie是很困难的。
针对这些问题,在HTML5中,重新提供了一种在客户端本地保存数据的功能,它就是Web Storage。
Web Storage又分为两种:
①sessionStorage(相关性质见③)
将数据保存在session对象中。所谓session,是指用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。session对象可以用来保存在这段时间内所要求保存的任何数据。
②localStorage(相关性质见③)
将数据保存在客户端本地的硬件设备(通常指硬盘,也可以是其他硬件设备)中,即使浏览器被关闭了,该数据仍然存在,下次打开浏览器访问网站时仍然可以继续使用。
③cookie 、sessionStorage与localStorage的区别
这两者的区别在于,sessionStorage为临时保存,而localStorage为永久保存。
特性 |
cookie |
Window.sessionStorage |
Window.localStorage |
数据生命周期 |
① 设置了maxAge值,在这个周期内有效; ② 默认没有设置,浏览器关闭时失效 |
存储在 sessionStorage 里面的数据在页面会话结束时会被清除。并且重新加载或恢复页面仍会保持原来的页面会话 |
数据存储在 |
存放数据的大小 |
4096KB左右,一个域名可以有20-50个cookie(浏览器内核不同,标准也不同) |
一般5MB或更大 |
|
与服务器通信 |
每次请求服务器会携带在HTTP请求头中 |
只有在使用数据时,请求使用数据,不参与和服务器通信 |
|
语法 |
|
|
|
作用域 |
path 参数决定(同源策略) |
同源策略 |
同源策略 |
API地址 |
|
|
|
其余关于浏览器存储的内容 见第 8 天
参考文章
① www.cnblogs.com/pengc/p/871…