Blogger Information
Blog 91
fans 0
comment 0
visits 77320
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
【前端 · 面试 】HTTP 总结(十)—— HTTP 缓存应用
编程三昧
Original
529 people have browsed it

最近我在做前端面试题总结系列,感兴趣的朋友可以添加关注,欢迎指正、交流。

争取每个知识点能够多总结一些,至少要做到在面试时,针对每个知识点都可以侃起来,不至于哑火。

前端·面试·http总结.012

前言

通过前面几篇内容的学习,我们知道 HTTP 缓存分为两种:

  • 强缓存

  • 协商缓存

并且也知道了它们的控制属性,总结起来就是下面这个图:

HTTP 缓存.缓存分类

今天我们就来动手实践一下,看看 HTTP 缓存到底是如何工作的。

搭建服务

首先,我们使用 Express 模块来搭建一个简单的静态资源服务,代码如下:

const express = require("express");const app = express();var options = {    dotfiles: "ignore",    etag: true,    extensions: ["htm", "html", "js", "css"],    index: false,    maxAge: 1000 * 60,    expires: 2000,    redirect: false,    setHeaders: function (res, path, stat) {        res.set("x-timestamp", Date.now());        // 设置资源过期时间        res.set("Expires", new Date(Date.now() + 100000).toGMTString());    },};app.use(express.static("./views", options));app.listen(1991);

静态资源文件结构如下图:

image-20210810205114401

加载结果

第一次加载上来的结果如下:

image-20210810205633049

重新刷新一次后,得到的结果如下:

image-20210810205957902

可以看到,第二次的结果和我们之前对强缓存和协商缓存的分析是一致的。

不知道大家有没有这样一个疑问:那要是我确实想要重新从服务器获取资源,而不想使用缓存,该怎么实现呢?

强制获取服务端资源

借助浏览器

由于缓存资源要么存在浏览器缓存中,要么存在本地硬盘中,我们可以通过浏览器自带的功能来强制获取服务端资源,比如右键刷新图标,选择如下图所示的后两项都可:

image-20210810211034135

给 URL 添加标识

比如,给正常的 URL 后面加上随便一串数字,得到的结果如下:

image-20210810211530323

因为 URL 后面添加的字符串需要每次都改变,所以,我们一般选择添加时间戳。

总结

本文就是对前面几天的学习做一个验证,希望对你有所帮助!

~

~本文完,感谢阅读!


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post