http缓存:强缓存、协商缓存
为什么要设置缓存?前端代码打包之后的生成的静态资源就要发布到静态服务器上,考虑到网站的性能和用户体验,设置缓存是必不可少的。
缓存分为强缓存 与协商缓存:
强缓存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缓存:强缓存、协商缓存相关推荐
- HTTP缓存优先级问题;主要有两种缓存:强缓存和对比缓存(也叫协商缓存)
HTTP缓存,主要有两种缓存:强缓存和对比缓存(也叫协商缓存) 强缓存: 只要请求了一次,在有效时间内,不会再请求服务器(请求都不会发起),直接从浏览器本地缓存中获取资源.主要字段有(expires: ...
- 说说web缓存-强缓存、协商缓存
网上关于WEB缓存的文章很多,今天汇总一下. 为什么要用缓存 一般针对静态资源如CSS,JS,图片等使用缓存,原因如下: 请求更快:通过将内容缓存在本地浏览器或距离最近的缓存服务器(如CDN),在不影 ...
- http协商缓存VS强缓存
之前一直对浏览器缓存只能描述一个大概,深层次的原理不能描述上来:终于在前端的两次面试过程中被问倒下,为了泄恨,查阅一些资料最终对其有了一个更深入的理解,废话不多说,赶紧来看看浏览器缓存的那些事吧,有不 ...
- 你知道304吗?图解强缓存和协商缓存
http协议-常见状态码,请求方法,http头部,http缓存 一.http状态码 1.引例阐述 2.状态码分类 3.常见状态码 4.关于协议和规范 二.http 方法 1.传统的methods 2. ...
- HTTP协商缓存与HTTP强缓存
1.浏览器缓存 缓存这东西,第一次必须获取到资源后,然后根据返回的信息来告诉如何缓存资源,可能采用的是强缓存,也可能告诉客户端浏览器是协商缓存,这都需要根据响应的header内容来决定的.下面用两幅图 ...
- 前端协商缓存强缓存如何使用_http协商缓存与强缓存
概述 良好的缓存策略可以降低资源的重复加载,提高网页的整体加载速度.通常浏览器的缓存策略分为两种:强缓存和协商缓存. 基本原理浏览器在加载资源的时候,会先根据这个资源的一些http header判断他 ...
- 浅谈强缓存和协商缓存
浅谈强缓存与协商缓存 最近面试被问到很多次关于http缓存的问题,在此做下笔记以此记录.话不多说,先来看张图来直观感受下http缓存的整体流程. 强缓存 当浏览器向服务器请求资源时,首先检查有无缓存. ...
- 浏览器缓存——强缓存、协商缓存
目录 浏览器缓存:强缓存.协商缓存 #强缓存 #协商缓存 #补充 #拓展 浏览器缓存:强缓存.协商缓存 区别:强缓存不向服务器发送请求,协商缓存会发送请求至服务器 相同点:若命中,都直接从浏览器缓存加 ...
- 浏览器缓存机制(强缓存和协商缓存)总结
文章目录 前言 缓存过程的分析 强缓存 Expires Cache-Control 协商缓存 Last-Modified和If-Modified-Since ETag和If-None-Match 两者 ...
- Http缓存机制(强缓存与协商缓存)及过程
一.为什么要缓存: 可以减少网络请求的次数和数量,降低网络延迟,加速页面加载,提高用户体验等 二.缓存机制:强缓存优先级高于协商缓存 强制缓存:服务器端认为请求资源应该被缓存,则在响应头部设置cach ...
最新文章
- 《大道至简》第一章编程的精义伪代码读后感
- 开源OCR文本检测器,基于TextBoxes++和RetinaNet
- OpenResty简介
- python虚拟环境搭建mac_mac搭建python virtualenv虚拟环境并使用 - 李金龙
- mysql ---- 官网的测试数据库
- C# 参数签名字符串按 ASCII码排序,注意其中的坑
- JavaScript------字符串与HTML格式相互转换
- 解决客户端Redis中文乱码问题
- 【Computer Organization笔记02】指令系统、MIPS指令系统简介、THCO MIPS指令系统、THINPAD指令模拟器
- 简书bug(已修复):网络不佳时安卓1.11.3呈现的空白页面如图
- json与对象如何进行相互转换
- Python3 - 苹果ID登录App Sign in with Apple
- 【Tableau server 8.0】Tableau server 考试真题回顾总结
- 计算机用户个人设置总是重启,联想电脑总是自动重启怎么回事
- 三年级竖式计算机应用题,三年级下册数学竖式计算1000题小学三年级下册数学应用题专项练习题100道...
- Python基于django的图书商城管理系统毕业设计源码110938
- 用C语言来实现扫雷小游戏
- 好嗨游戏:TapTap9.9分,《鸡你太美》这到底是什么魔鬼游戏?
- 贾其萃 : 笃行实践 筑梦扬帆 | 提升之路系列(二)
- 型、T型、K型 热电偶的区别和特点