百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

如何设置HTTP缓存

off999 2025-02-27 16:21 33 浏览 0 评论

设置HTTP缓存主要通过配置服务器响应头来控制浏览器和代理服务器如何缓存资源。以下是详细的步骤和策略:


一、核心HTTP缓存头

1.Cache-Control(优先级最高)

  • 常用指令
    • max-age=秒:资源缓存的最大时间(如max-age=31536000表示1年)。
    • public:允许所有中间代理和浏览器缓存资源。
    • private:仅允许浏览器缓存,禁止代理服务器缓存(适合用户私有数据)。
    • no-cache:每次需向服务器验证资源是否过期(配合ETag或Last-Modified使用)。
    • no-store:完全禁止缓存(用于敏感数据)。
    • must-revalidate:过期后必须重新验证。

示例

Cache-Control: public, max-age=31536000

2.Expires(旧方法,建议与Cache-Control共存)

指定资源的绝对过期时间(需确保服务器时间准确):

Expires: Wed, 21 Oct 2025 07:28:00 GMT

3.验证缓存头(协商缓存)

ETag:服务器生成的资源唯一标识(如哈希值):

ETag: "33a64df551425fcc55e4d42a148795d9"

Last-Modified:资源最后修改时间:

Last-Modified: Tue, 15 Nov 2022 12:45:26 GMT

二、不同资源的缓存策略

1.静态资源(CSS/JS/图片)

长期缓存(文件名带哈希版本号):

Cache-Control: public, max-age=31536000, immutable

2.动态内容(HTML/API响应)

短时间缓存或禁用缓存:

Cache-Control: no-cache, max-age=0

3.用户私有数据(如个人中心页面)

禁止代理缓存:

Cache-Control: private, max-age=3600

三、服务器配置示例

1.Nginx配置

# 静态资源(图片/CSS/JS)
location ~* \.(jpg|jpeg|png|gif|css|js)$ {
  expires 365d;
  add_header Cache-Control "public, max-age=31536000, immutable";
}

# HTML文件
location / {
  add_header Cache-Control "no-cache, max-age=0";
}

2.Apache配置(.htaccess)


  Header set Cache-Control "public, max-age=31536000, immutable"



  Header set Cache-Control "no-cache, max-age=0"

3.Node.js(Express框架)

// 静态资源
app.use(express.static('public', {
  maxAge: '1y',
  setHeaders: (res, path) => {
    if (path.endsWith('.html')) {
      res.set('Cache-Control', 'no-cache, max-age=0');
    }
  }
}));

四、调试与验证

  1. 浏览器开发者工具
  2. Network标签页查看响应头中的Cache-Control、ETag等字段。
  3. 检查资源是否来自disk cache或memory cache。
  4. cURL命令
curl -I http://example.com/asset.js
  1. 缓存清除测试
  2. 修改资源内容后,通过更改文件名或URL参数(如/asset.js?v=2)强制更新。

五、最佳实践

  1. 版本化文件名
  2. 使用哈希值命名静态资源(如main.a1b2c3.js),避免更新后缓存冲突。
  3. 分级缓存策略
  4. 结合CDN缓存(如设置CDN的Cache-Control为1年,源站设置为短时间)。
  5. 协商缓存兜底
  6. 即使设置max-age,也应保留ETag或Last-Modified,确保资源更新后能及时生效。

通过合理配置HTTP缓存,可显著提升网站加载速度并降低服务器负载。建议根据资源类型和更新频率灵活调整策略。

相关推荐

格式工厂免费版(格式工厂免费版破解版)

不收费用格式工厂是由上海格式工厂网络有限公司创立于2008年2月,是面向全球用户的互联网软件。格式工厂发展至今,已经成为全球领先的视频图片等格式转换客户端。格式工厂致力于帮用户更好的解决文件使用问题,...

路由器连接电脑插哪个端口(路由器跟电脑的连接线怎么插)

电脑连接路由器插入路由器LAN口。具体方法如下1、光纤或网线插到路由器的WAN口上,(或网线连接modem的line口,modem的lan口连接了无线路由的wan口);2、电脑网线从路由器的LAN口上...

华硕官方客服在线解答(华硕客服售后在线咨询)

如果您需要寻找ROG的售后服务,可以通过以下几种方式进行联系:1.官方网站:您可以在ROG的官方网站上找到售后服务的联系方式,如客服电话、在线客服、邮件等。2.客服热线:您可以通过ROG的客服热线...

召唤系统之最强帝国(召唤系统之最强人皇)

名字叫做《绝世皇帝》。讲述林谦,地球的国战游戏达人,发生意外后,重生到异界。然而,在这异界之中,除了修炼天赋好点,却没有特殊的一技之长。炼丹他炸炉,炼器成废铁,更别提阵法这些其他生活技能,一窍不通。不...

如何将网址粘贴为链接(网址复制到word怎么变成链接)

可以复制网址链接的方法有多种,最常用的方法是在浏览器中打开需要复制的网页,在地址栏中选中网址,然后右键选择“复制”,或者按下“Ctrl+C”快捷键,即可将网址复制到剪贴板中。另外,某些应用程序也提供了...

i主题app下载(i主题官方版)

OPPO手机使用i主题的操作方法如下首先我们打开OPPO手机,在手机桌面找到i主题的图标,点击图标进入到主题页面,在主题页面,我们选择主题专区,然后再推荐主题专区里面找到你喜欢的主题之后,点击...

win10官方下载工具打不开(win10下载软件打不开怎么办)
win10官方下载工具打不开(win10下载软件打不开怎么办)

步骤/方式1首先右击win10桌面的此电脑图标,选择管理进入。步骤/方式2展开本地用户和组,点击用户,右击右侧的Administrator账户,选择属性打开,然后取消账户已禁用的勾选点击确定。步骤/方式3然后再次登录Administrato...

2025-12-18 04:03 off999

系统错误怎么解决(微信系统错误怎么解决)

1、最后一次正确的配置:在开机启动未进入到操作系统之前我们按下F8键,选择“最后一次正确的配置”然后回车即可。此方法只能解决因出现配置问题进不了系统的情况(例如更换新硬件或加载新驱动后造成的蓝屏),由...

电脑自带的防火墙怎么关(电脑的防火墙如何关闭)
电脑自带的防火墙怎么关(电脑的防火墙如何关闭)

点击开始,点击设置,进入设置后我们可以直接在上方的搜索框中直接搜索【defender】,就会弹出防火墙。点击进入防火墙后,在左侧的列表中找到【启用或关闭Windowsdefender防火墙】,并且点击进入。进入后,就可以自行关闭所有的防...

2025-12-18 03:03 off999

光猫和路由器哪个网速快(光猫网速快还是路由器网速快)

两个都快。这要从两个设备的功能说起。光猫是把光信号转变成数字信号的一种设备,随着光猫技术的发展,现在光猫也集成了路由器的功能,也带有有线和无线,只要有光纤加上光猫,就可以实现有线或者无线上网。路由器的...

台式电脑运行一段时间就死机

1、散热不良:显示器、电源和CPU工作时间太长会导致死机,给风扇除尘,上油。2、灰尘杀手:机器内灰尘过多也会引起死机故障。定期清洁机箱。3、内存条故障:主要是内存条松动,内存芯片本身质量所致,应根...

高清windows免费版观看(高清windows免费版观看网站)

方法一:1、右键单击开始菜单----运行2、在运行对话框中输入:devmgmt.msc,展开:显卡适配器,右击所列的显卡适配器,点击卸载。3、卸载后重新安装兼容Win10的显卡驱动,建议去官方下载...

h3c官网(H3C官网登录账号)

1H3C防火墙官网是存在的,可以通过搜索引擎或输入官方网址进行访问。2H3C防火墙官网提供了产品信息、技术支持、解决方案和服务支持等各种资源,帮助用户全面了解和使用H3C防火墙产品。同时,还有在线...

系统流小说下载(系统流小说大全完本)

全能奇才、末世之兑换高手、穿越之兑换无敌、:重生之我能升级、重生之模拟游戏、超级物品、戒指也疯狂、全职天才、疯狂道具、星戒、超级游戏分身、重生之神才风流、全能闲人、逆天作弊器之超级游戏、宅男之游戏人生...

win7网络设置初始化(win7网络设置初始化方法)

1、首先在操作系统桌面上,点击左下角开始按钮选择控制面板选项进入。2、进入控制面板主界面,点击查看方式下拉按钮选择大图标进入。3、切换至所有控制面板项,点击恢复选项进入。4、进入恢复界面,点击高级恢复...

取消回复欢迎 发表评论: