这是我参与11月更文挑战的第2天,活动详情查看:2021最后一次更文挑战
缓存是什么
缓存是一种保存资源副本并在下次请求时直接使用该副本的技术。当web缓存发现请求的资源已经被存储,它会拦截请求,返回该资源的拷贝,而不会去源服务器重新下载。
缓存需要合理配置,因为并不是所有资源都是永久不变的。重要的是对一个资源的缓存应截止到其下一次发生改变(即不能缓存过期的资源)。
缓存的优势
缓存服务器端的数据,具有以下优势:
- 缓解服务器端的资源消耗和运行压力,提升服务器端的整体性能。
- 减少服务器端资源加载的延迟,进而减少显示某个资源所用的时间。
- 减少对带宽造成的压力,避免网络阻塞问题的出现
- Web站点变得更具有响应性
Cookie 是什么
Cookie 是服务器发送到用户浏览器并保存在本地的一小块数据,会在测览器下次向同一服务器再发起请求时被携带并发送到服务器上。
通常,Cookie 用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。Cookie 使基于无状态的 HTTP 协议记录稳定的状态信息成为了可能。Cookie 技术产生源于 HTTP 协议在互联网上的急速发展。
Cookie 曾一度用于客户端数据的存储,因当时并没有其它合适的存储办法而作为唯一的存储手段。但现在随着现代浏览器开始支持各种各样的存储方式,Cookie 渐渐被淘汰。由于服务器指定 Cookie 后,浏览器的每次请求都会携带 Cookie 数据,会带来额外的性能开销。
Cookie 解决 HTTP 无状态的网络协议
Cookie 的作用域
Domain 和 Path 标识定义了 Cookie 的作用域,即 Cookie 应该发送给哪些 URL。
-
Domain 标识指定了哪些主机可以接受 Cookie。
- 如果不指定,默认为当前文档的主机(不包含子域名)。
- 如果指定了 Domain,则一般包含子域名。例如,如果设置 Dormain=wolongxueyuan.com, 则 Cookie 也包含在子域名中(如 developer.wolongxueyuan.com )。
-
Path 标识指定了主机下的哪些路径可以接受 Cookie (该 URL 路径必须存在于请求 URL 中)。以字符 %×2F(“/”) 作为路径分隔符,子路径也会被匹配。
Cookie的应用
Cookie主要用于以下三个方面:
- 会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)
- 个性化设置(如用户自定义设置、主题等)
- 浏览器行为跟踪(如跟踪分析用户行为等)
创建 Cookie
JavaScript可以使用 document.cookie 属性来访问和更新 Cookie。语法结构如下所示:
document.cookie = newCookie;
newCookie 是一个键值对形式的字符串。需要注意的是,用这个方法一次只能对一个 cookie 进行设置或更新。
document.cookie = "name=wolongxueyuan";
document.cookie = "someCookieName=true; expires=FR, 31 Dec 9999 23:59:59 GMT; path="/";