博主信息
博文 91
粉丝 0
评论 0
访问量 99335
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
【前端 · 面试 】HTTP 总结(十)—— HTTP 缓存应用
编程三昧
原创
719人浏览过

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

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

前端·面试·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 后面添加的字符串需要每次都改变,所以,我们一般选择添加时间戳。

总结

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

~

~本文完,感谢阅读!


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学