为什么要设置缓存?前端代码打包之后的生成的静态资源就要发布到静态服务器上,考虑到网站的性能和用户体验,设置缓存是必不可少的。

缓存分为强缓存 与协商缓存:

强缓存expires和cache-control 这两个字段,expires这是http1.0时的规范。主要介绍cache-control。cache-control 这是http1.1时出现的header信息。设置强缓存就是服务端在respone header 的cache-control,常见的设置是max-age public private no-cache no-store

  • max-age=xxx,public:客户端在x秒的有效期内,客户端和代理服务器都可以缓存该资源;

  • max-age=xxx,private:客户端在x秒的有效期内,只让客户端缓存;代理服务器不缓存

  • max-age=xxxx,immutable: 如果有请求该资源的需求的话就直接读取缓存,即使用户做了刷新操作,也不向服务器发起http请求

  • no-cache: 跳过设置强缓存,但是不妨碍设置协商缓存; 。

  • no-store: 客户端、服务器都不缓存,也就没有所谓的强缓存、协商缓存了。

注:如果cache-control与expires同时存在的话,cache-control的优先级高于expires

协商缓存如何设置使用?

1.首先每次请求response header都会携带 etag和 last-modified;在下次请求时request header会带上这两个值(If-None-Match ,If-Modified-Since 见备注);

(注)协商缓存有两组报文:1.Last-Modified和If-Modified-Since   2.ETag和If-None-Match

2.其次服务端对这两个值进行对比,判断资源是否更改,如果更改就直接返回新的资源,和更新对应的response header的标识etag、last-modified。

3如果资源没有变,那就不变etag、last-modified,这时候对客户端来说,每次请求都是要进行协商缓存。

注:Last-Modified与ETag是可以一起使用的,服务器会优先验证ETag,一致的情况下,才会继续比对Last-Modified,最后才决定是否返回304。

http缓存:强缓存、协商缓存相关推荐

  1. HTTP缓存优先级问题;主要有两种缓存:强缓存和对比缓存(也叫协商缓存)

    HTTP缓存,主要有两种缓存:强缓存和对比缓存(也叫协商缓存) 强缓存: 只要请求了一次,在有效时间内,不会再请求服务器(请求都不会发起),直接从浏览器本地缓存中获取资源.主要字段有(expires: ...

  2. 说说web缓存-强缓存、协商缓存

    网上关于WEB缓存的文章很多,今天汇总一下. 为什么要用缓存 一般针对静态资源如CSS,JS,图片等使用缓存,原因如下: 请求更快:通过将内容缓存在本地浏览器或距离最近的缓存服务器(如CDN),在不影 ...

  3. http协商缓存VS强缓存

    之前一直对浏览器缓存只能描述一个大概,深层次的原理不能描述上来:终于在前端的两次面试过程中被问倒下,为了泄恨,查阅一些资料最终对其有了一个更深入的理解,废话不多说,赶紧来看看浏览器缓存的那些事吧,有不 ...

  4. 你知道304吗?图解强缓存和协商缓存

    http协议-常见状态码,请求方法,http头部,http缓存 一.http状态码 1.引例阐述 2.状态码分类 3.常见状态码 4.关于协议和规范 二.http 方法 1.传统的methods 2. ...

  5. HTTP协商缓存与HTTP强缓存

    1.浏览器缓存 缓存这东西,第一次必须获取到资源后,然后根据返回的信息来告诉如何缓存资源,可能采用的是强缓存,也可能告诉客户端浏览器是协商缓存,这都需要根据响应的header内容来决定的.下面用两幅图 ...

  6. 前端协商缓存强缓存如何使用_http协商缓存与强缓存

    概述 良好的缓存策略可以降低资源的重复加载,提高网页的整体加载速度.通常浏览器的缓存策略分为两种:强缓存和协商缓存. 基本原理浏览器在加载资源的时候,会先根据这个资源的一些http header判断他 ...

  7. 浅谈强缓存和协商缓存

    浅谈强缓存与协商缓存 最近面试被问到很多次关于http缓存的问题,在此做下笔记以此记录.话不多说,先来看张图来直观感受下http缓存的整体流程. 强缓存 当浏览器向服务器请求资源时,首先检查有无缓存. ...

  8. 浏览器缓存——强缓存、协商缓存

    目录 浏览器缓存:强缓存.协商缓存 #强缓存 #协商缓存 #补充 #拓展 浏览器缓存:强缓存.协商缓存 区别:强缓存不向服务器发送请求,协商缓存会发送请求至服务器 相同点:若命中,都直接从浏览器缓存加 ...

  9. 浏览器缓存机制(强缓存和协商缓存)总结

    文章目录 前言 缓存过程的分析 强缓存 Expires Cache-Control 协商缓存 Last-Modified和If-Modified-Since ETag和If-None-Match 两者 ...

  10. Http缓存机制(强缓存与协商缓存)及过程

    一.为什么要缓存: 可以减少网络请求的次数和数量,降低网络延迟,加速页面加载,提高用户体验等 二.缓存机制:强缓存优先级高于协商缓存 强制缓存:服务器端认为请求资源应该被缓存,则在响应头部设置cach ...

最新文章

  1. 《大道至简》第一章编程的精义伪代码读后感
  2. 开源OCR文本检测器,基于TextBoxes++和RetinaNet
  3. OpenResty简介
  4. python虚拟环境搭建mac_mac搭建python virtualenv虚拟环境并使用 - 李金龙
  5. mysql ---- 官网的测试数据库
  6. C# 参数签名字符串按 ASCII码排序,注意其中的坑
  7. JavaScript------字符串与HTML格式相互转换
  8. 解决客户端Redis中文乱码问题
  9. 【Computer Organization笔记02】指令系统、MIPS指令系统简介、THCO MIPS指令系统、THINPAD指令模拟器
  10. 简书bug(已修复):网络不佳时安卓1.11.3呈现的空白页面如图
  11. json与对象如何进行相互转换
  12. Python3 - 苹果ID登录App Sign in with Apple
  13. 【Tableau server 8.0】Tableau server 考试真题回顾总结
  14. 计算机用户个人设置总是重启,联想电脑总是自动重启怎么回事
  15. 三年级竖式计算机应用题,三年级下册数学竖式计算1000题小学三年级下册数学应用题专项练习题100道...
  16. Python基于django的图书商城管理系统毕业设计源码110938
  17. 用C语言来实现扫雷小游戏
  18. 好嗨游戏:TapTap9.9分,《鸡你太美》这到底是什么魔鬼游戏?
  19. 贾其萃 : 笃行实践 筑梦扬帆 | 提升之路系列(二)
  20. 型、T型、K型 热电偶的区别和特点

热门文章

  1. [架构之路-6]:架构师 - 架构师应该具备的架构思维
  2. 爱斯沃官宣品牌形象代言人:花滑世界冠军于小雨
  3. 适用于NLP自然语言处理的Python:使用Facebook FastText库
  4. hadoop通过压缩包方式安装
  5. 重写hashcode和equals方法
  6. 如何快速恢复IDEA的默认快捷键
  7. 安卓手机突然很卡_为什么我的手机突然变卡了
  8. 解决Kali19.04搜狗输入法问题 ---转
  9. 现在做淘宝赚钱吗?要注意哪些?
  10. 2019年我看手机之华为篇