cookie需要服务器响应么,关于Cookie和Session以及响应头

Cookie 是服务器通过 Set-Cookie 响应头给浏览器的一串字符串

浏览器访问相同域名时必须带上这段字符串

浏览器在一段时间内要保存 Cookie

Cookie 的大小大概在 4KB 左右

————————————————————

Session 是服务器保存的

服务器通过 Cookie 给浏览器一个 SessionID

服务器有一块内存保存了类似于 { SessionID:Session }的哈希数据结构

浏览器访问服务器时,服务器读取 SessionID,根据 ID 找到对应的 Session,服务器就可以读取 Session 中的用户信息了

Cookie 和 LocalStorage 的区别?

Cookie 是服务器通过 Set-Cookie 响应头给浏览器的一串字符串

浏览器访问相同域名时必须带上这段字符串

浏览器在一段时间内要保存 Cookie

Cookie 的大小大概在 4KB 左右

——————————————————————————————————————

LocalStorage 是在浏览器本地保存的(可能保存在 C 盘之类的地方)并且和 HTTP 无关

只有在相同域名的页面才能互相读取 LocalStorage,但是没有同源策略那么严格

LocalStorage 如果用户不特意清除会永远保存

LocalStorage 的大小大概在 5MB 左右

LocalStorage 和 SessionStorage 的区别

LocalStorage 是在浏览器本地保存的(可能保存在 C 盘之类的地方)并且和 HTTP 无关

只有在相同域名的页面才能互相读取 LocalStorage,但是没有同源策略那么严格

LocalStorage 如果用户不特意清除会永远保存

LocalStorage 的大小大概在 5MB 左右

————————————————————————————————————————

SessionStorage 和 LocalStorage 差不多,但是 SessionStorage 关闭页面就会消失

Cookie 如何设置过期时间?

两种方法,设置 Cache-Control 或者设置 Expires,设置 Expires 是老方法,现在推荐使用 Cache-Control

Cache-Contro:1

response.setHeader('Cache-Contro','max-age=30')

Expires:1

response.setHeader('Expires','Wed, 26 Dec 2018 06:59:19 GMT')

两者的区别是前者规定过了多少时间后失效,后者是到了某个时间之后失效 (后者指的是本地时间)

如何删除 Cookie?

可以用 js 来删除,也可以用户通过浏览器的清除缓存选项,把清除 Cookie 勾选上来删除。

还有 Cookie 过期了就自动删除了

Cache-Control: max-age=1000 缓存 与 ETag 的 “缓存” 有什么区别?

Cache-Control: max-age=1000

在一千秒后 Cookie 会过期,在此期间除了第一次访问外,浏览器会直接从内存获取文档而不是通过 Http 请求,这个过程产生 0 流量

在一千秒后还得通过 Http 请求获取文档

——————————————————————————————

ETag 相当于一个版本号,浏览器持有的这个版本号和服务器端一样的话就不用再重新下载文档了,但是和服务器端对比版本号这个过程会产生流量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值