【前端 · 面试 】HTTP 总结(十)—— HTTP 缓存应用

news2024/11/15 10:00:38

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

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

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

总结

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

~

~本文完,感谢阅读!

~

学习有趣的知识,结识有趣的朋友,塑造有趣的灵魂!

大家好,我是〖编程三昧〗的作者 隐逸王,我的公众号是『编程三昧』,欢迎关注,希望大家多多指教!

你来,怀揣期望,我有墨香相迎! 你归,无论得失,唯以余韵相赠!

知识与技能并重,内力和外功兼修,理论和实践两手都要抓、两手都要硬!



喜欢的朋友记得点赞、收藏、关注哦!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1965696.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024宁波工业装备博览会-相聚12月

2024宁波工业装备博览会-相聚12月 时间:2024年12月2-4日 地点:宁波国际会展中心 2024中国(宁波)工业装备博览会展出面积、展品内容在不断扩大,专业观众成倍增加,极大地推动宁波智能制造产业的国际交流及贸易市场的发展。展会不…

企业如何通过有效的库存管理来降低库存成本?

企业如何通过有效的库存管理来降低库存成本? 那么如何在满足市场需求的同时,最大限度地减少资金占用、降低仓储成本、避免库存积压与损耗呢? 这个问题很好回答,本文我想带你了解WMS仓库管理系统,其能够有效并精准的帮…

选择最佳SOLIDWORKS服务商:您的成功之钥

在当今快速发展的制造业环境中,选择合适的SOLIDWORKS服务商对于确保您的项目成功至关重要。无论是初次接触SOLIDWORKS还是希望提升现有的设计流程,找到一位可靠的服务商都能为您提供所需的技术支持和服务。本文将帮助您了解如何选择最佳的SOLIDWORKS服务…

推荐3款电脑上不可或缺的神仙软件

Allen Explorer Allen Explorer是一款功能强大的文件管理软件,旨在替代Windows系统的“我的电脑”。它采用了类似Chrome的界面设计,简洁美观,支持多标签页、双窗口、收藏夹等功能,极大地优化了文件操作体验。用户可以对文件项目进…

使用 JavaScript 对图像进行量化并提取主要颜色

前言 前段时间在 Halo 的 应用市场 中遇到希望主题和插件的封面图背景色为封面图主色的问题,于是乎需要根据封面图提取主色就想到使用 K-Means 算法来提取。 在图像处理中,图像是由像素点构成的,每个像素点都有一个颜色值,颜色值…

Gstreamer结合腾讯云进行rtmp直播

直播效果: 一、注册腾讯云直播账户,生成rtmp推流地址 腾讯云直播地址: https://console.cloud.tencent.com/live 首先需要注册登录。然后电机生成直播地址: 输入自己的流名字,比如test 复制这个RTMP地址。 这时候&am…

【数据结构与算法】循环队列

循环队列 一.循环队列的引入二.循环队列的原理三.循环队列判断是否为满或空1.是否为空2.是否为满 四.循环队列入队五.循环队列出队六.循环队列的遍历七.循环队列获取长度八.总结 一.循环队列的引入 还记得我们顺序队列的删除元素嘛,我们有两种方式,一种是将数组要删除元素后面…

系统数据库

Mysql数据库安装完成后,自带了一下四个数据库,具体作用如下: 常用工具:

<数据集>工程机械识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:6338张 标注数量(xml文件个数):6338 标注数量(txt文件个数):6338 标注类别数:7 标注类别名称:[Excavator, Loader, Dumb_truck, Mobile_crane, Roller, Bull_dozer, …

功能实现——采用 Hutool 工具发送邮件

目录 1.需求分析2.准备工作:开通邮箱的 SMTP 服务3.项目环境搭建4.代码实现mail.htmlEmployee.javaMailController.javaMailService.javaMailServiceImpl.java 5.测试 1.需求分析 采用 Hutool 工具来实现发送邮件的功能,具体来说:为新员工发…

准备笔试第21天,牛客.十字爆破牛客.比木名居的桃子牛客.chinka蜜柑01背包

目录 牛客.十字爆破 牛客.比木名居的桃子 牛客.chinka蜜柑 01背包 牛客.十字爆破 就是上下左右加上,但是会遇到的问题就是,这块并不容易去获取得分,如果可能要四重循环,遍历这一行,这一列,然后把他们存在…

解决Ubuntu报错:sudo: /etc/sudoers is world writable

1. 情况描述 /etc/sudoer这个文件的权限由440变成了777,由于账户下有多个子账户,导致子账户的sudo权限不能使用。报错如下: 2.解决办法 执行下面的语句就ok了 pkexec chmod 0440 /etc/sudoers 参考链接 3.总结 不要随便改系统文件的权…

模型组合、注意力机制在单步、多步、单变量、多变量预测中的应用

往期精彩内容: 时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较-CSDN博客 VMD CEEMDAN 二次分解,Transformer-BiGRU预测模型-CSDN博客 独家原创 | 基于TCN-SENet BiGRU-GlobalAttention并行预测模型-CSDN博客 独家原创 | B…

a newer version of WinPcap,ensp安装时候winpcap软件报错

ensp安装时候winpcap软件报错 a newer version of WinPcap… 找到C盘路径下的文件Packet.dll C:\Windows\SysWOW64 修改为:Packet.dll.1(后缀名随便改一下) 再次安装,成功

在线PS快速抠出透明背景(纯色背景+复杂背景抠图操作)

电脑硬盘快爆了,没必要安装个PS了,网上找了几个在线的PS网站,还别说,一般的PS操作都可以满足 我们使用PS通常用的较多的是抠背景操作吧,接下来演示几个在在线PS网站上进行抠背景操作 一、在线PS网站 Photopea&#x…

程序员转型人工智能:从“996”困境到拥抱光明未来

前言 在这个充满挑战与机遇的时代,各行各业的辛酸各有不同,而程序员群体无疑有着自己的独特体验。他们学习着普通人难以理解的计算机语言,工作在“996”的高压环境中,还未及中年就可能面临“聪明绝顶”的尴尬。面对行业的快速更新…

树与二叉树【中】

目录 二. 二叉树2.1 二叉树的性质2.2 二叉树的存储结构2.2.1 二叉树的顺序存储(只适合存储完全二叉树)2.2.2 二叉树的链式存储 2.3 二叉树的遍历2.3.1 先序遍历2.3.2 中序遍历2.3.3 后序遍历2.3.4 二叉树的层序遍历2.3.5 由遍历序列构造二叉树2.3.5.1 前…

【HarmonyOS】HarmonyOS NEXT学习日记:八、组件通信

【HarmonyOS】HarmonyOS NEXT学习日记:八、组件通信 通过前面的学习我们基本上掌握了如何封装组件,但是实际使用过程中组件之间的状态需要互相之间关联通讯,涉及到父子组件,后代组件之间的相互通信。 State装饰器:组…

Loader QML Type

文章目录 Loader QML Type描述属性(Properties)active : boolasynchronous : bool(异步)item : objectprogress : realsource : urlsourceComponent : Componentstatus : enumeration 信号(Signal Documentation&#…

四,搭建环境:表述层

四,搭建环境:表述层 文章目录 四,搭建环境:表述层设定 Web 工程web.xml 的配置编写配置 ContextLoaderListener配置 DispatcherServlet配置 CharacterEncodingFilter配置 HiddenHttpMethodFilter 配置 Spring MVC配置视图解析相关…