Cookie,Session,LocalStorage和SessionStorage的区别?

本文介绍了Cookie、Session、LocalStorage和SessionStorage的基本概念与区别。详细解释了Cookie如何设置过期时间及如何删除,同时对比了Cache-Control与ETag的缓存机制。

Cookie

1. 服务器通过 Set-Cookie 头给客户端一串字符串

2. 客户端每次访问相同域名的网页时,必须带上这段字符串

3. 客户端要在一段时间内保存这个Cookie

 

Session

1. 将SessionID(随机数)通过Cookie发给客户端

2. 客户端访问服务器时,服务器读取SessionID

3. 服务器有一块内存(哈希表)保存了所有Session

4. 通过SessionID,我们可以得到对应的用户隐私信息,如id,email

5. 这块内存(哈希表)就是服务器上的所有Session

 

LocalStorage

1. LocalStorage跟HTTP无关

2. HTTP不会带上LocalStorage的值

3. 只有相同域名的页面才能互相读取LocalStorage(没有同源那么严格)

4. 每个域名LocalStorage最大储存量为5MB左右(每个浏览器不一样)

5. 常用场景:记录有没有提示过用户(没有用的信息,不能记录密码)

 

SessionStorage

1. 2. 3. 4. 5. 点与LocalStorage相同

6. SessionStorage 非永久有效,当前会话(页面)结束后失效

 

Cookie 和 LocalStorage 的区别?

Cookie

1. 是由请求头 响应头 传送数据的

2.每个域名的 cookie的最大存储量为4KB左右

 

LocalStorage

1. LocalStorage与http无关

2. http不会带上LocalStorage的值

3. 每个域名的 LocalStorage的最大存储量为5M左右

4. LocalStorage永久有效,除非用户清理缓存

 

LocalStorage 和 SessionStorage 的区别?

LocalStorage永久有效,除非用户清理缓存

SessionStorage 当前会话有效,关闭当前会话后会被清理

 

Cookie 如何设置过期时间?如何删除 Cookie?

Cookie 如何设置过期时间

服务器端:response.setHeader('Set-Cookie','Lucy=18;Expires =Thu, 23 May 2019 07:52:15 GMT')

客户端:document.cookie = "Lucy=18;expires=Fri, 31 Dec 2020 23:59:59 GMT";

 

删除cookie

JavaScript并没有内置接口直接删除cookie,但是可以利用曲线救国的办法来实现删除功能

将cookie的过期时间设置为过去的时间就可以了

 

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

Cache-Control: max-age=1000

是指的当前时间往后1000秒之内不请求新文件 由浏览器计算时间
 

ETag 的 缓存

则是初次请求时将文件通过MD5加密后得到的信息摘要由响应头返回, 此后的请求时请求头会带上这段信息摘要与服务器的文件摘要进行比对,如果一致则使用本地文件,如果不同则再从服务器上下载。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值