(2)因为 Last-Modified 的这种可能发生的不准确性 , http 中提供了另外一种方式,那就是 Etag 属性 。服务器在返回资源的时候,在头信息中添加了 Etag 属性,这个属性是资源生成的唯一标识符,当资源发生改变的时候 , 这个值也会发生改变 。在下一次资源请求时,浏览器会在请求头中添加一个 If-None-Match 属性,这个属性的值就是上次返回的资源的 Etag 的值 。服务接收到请求后会根据这个值来和资源当前的 Etag 的值来进行比较,以此来判断资源是否发生改变,是否需要返回资源 。通过这种方式,比 Last-Modified 的方式更加精确 。
当 Last-Modified 和 Etag 属性同时出现的时候,Etag 的优先级更高 。使用协商缓存的时候,服务器需要考虑负载平衡的问题,因此多个服务器上资源的 Last-Modified 应该保持一致,因为每个服务器上 Etag 的值都不一样,因此在考虑负载平衡时,最好不要设置 Etag 属性 。
总结:
强缓存策略和协商缓存策略在缓存命中时都会直接使用本地的缓存副本,区别只在于协商缓存会向服务器发送一次请求 。它们缓存不命中时,都会向服务器发送请求来获取资源 。在实际的缓存机制中,强缓存策略和协商缓存策略是一起合作使用的 。浏览器首先会根据请求的信息判断,强缓存是否命中,如果命中则直接使用资源 。如果不命中则根据头信息向服务器发起请求,使用协商缓存,如果协商缓存命中的话,则服务器不返回资源 , 浏览器直接使用本地资源的副本,如果协商缓存不命中,则浏览器返回最新的资源给浏览器 。
4. 为什么需要浏览器缓存?
对于浏览器的缓存,主要针对的是前端的静态资源,最好的效果就是,在发起请求之后,拉取相应的静态资源 , 并保存在本地 。如果服务器的静态资源没有更新 , 那么在下次请求的时候,就直接从本地读取即可,如果服务器的静态资源已经更新,那么我们再次请求的时候,就到服务器拉取新的资源,并保存在本地 。这样就大大的减少了请求的次数,提高了网站的性能 。这就要用到浏览器的缓存策略了 。
所谓的浏览器缓存指的是浏览器将用户请求过的静态资源,存储到电脑本地磁盘中 , 当浏览器再次访问时 , 就可以直接从本地加载,不需要再去服务端请求了 。
使用浏览器缓存,有以下优点:
减少了服务器的负担 , 提高了网站的性能
加快了客户端网页的加载速度
减少了多余网络数据传输
5. 点击刷新按钮或者按 F5、按 Ctrl F5 (强制刷新)、地址栏回车有什么区别?
**点击刷新按钮或者按 F5:**浏览器直接对本地的缓存文件过期 , 但是会带上If-Modifed-Since,If-None-Match,这就意味着服务器会对文件检查新鲜度,返回结果可能是 304,也有可能是 200 。
**用户按 Ctrl F5(强制刷新):**浏览器不仅会对本地文件过期,而且不会带上 If-Modifed-Since , If-None-Match,相当于之前从来没有请求过,返回结果是 200 。
地址栏回车: 浏览器发起请求,按照正常流程,本地检查是否过期,然后服务器检查新鲜度,最后返回内容 。
四、浏览器组成
1. 对浏览器的理解
浏览器的主要功能是将用户选择的 web 资源呈现出来 , 它需要从服务器请求资源,并将其显示在浏览器窗口中,资源的格式通常是 HTML,也包括 PDF、image 及其他格式 。用户用 URI(Uniform Resource Identifier 统一资源标识符)来指定所请求资源的位置 。
HTML 和 CSS 规范中规定了浏览器解释 html 文档的方式,由 W3C 组织对这些规范进行维护,W3C 是负责制定 web 标准的组织 。但是浏览器厂商纷纷开发自己的扩展 , 对规范的遵循并不完善,这为 web 开发者带来了严重的兼容性问题 。
- 筑基金丹元婴类修真小说推荐 讲里面有金丹元婴境界是哪部
- 面对非正义行为我们应该怎么做
- 九月份种植的蔬菜有哪些?
- 天涯何处无芳草.何必单恋一枝花 天涯何处无芳草何必单恋一枝花后面怎么说
- 美白面膜用多了会怎么样 美白面膜能天天敷吗?
- 水猴子图片真实图片 水鬼 水里面真的有水猴子存在吗
- 抖音里面最火28首歌 看看你喜爱的歌曲上榜了吗
- 京东帮人下单「京东给别人代下单骗局大揭秘解开神秘面纱」
- 早餐面粉的做法大全 用面粉做早餐有哪些做法
- 口才不好看什么书管用