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加密后得到的信息摘要由响应头返回, 此后的请求时请求头会带上这段信息摘要与服务器的文件摘要进行比对,如果一致则使用本地文件,如果不同则再从服务器上下载。