返回顶部
首页 > 资讯 > 精选 >基于nginx如何设置浏览器协商缓存
  • 838
分享到

基于nginx如何设置浏览器协商缓存

2023-06-30 18:06:45 838人浏览 独家记忆
摘要

这篇文章主要介绍“基于Nginx如何设置浏览器协商缓存”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于nginx如何设置浏览器协商缓存”文章能帮助大家解决问题。强缓存与协商缓存的区别  强缓存:浏

这篇文章主要介绍“基于Nginx如何设置浏览器协商缓存”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于nginx如何设置浏览器协商缓存”文章能帮助大家解决问题。

强缓存与协商缓存的区别

  强缓存:浏览器不与服务端协商直接取浏览器缓存

  协商缓存:浏览器会先向服务器确认资源的有效性后才决定是从缓存中取资源还是重新获取资源

协商缓存运作原理

  现在有一个这样的业务情景:后端的静态资源会不定时地发生更新,而因为浏览器默认使用强缓存,会默认从浏览器缓存中取到过时的资源。

  现在我们希望浏览器每次获取资源的时候都向后端确认资源是否更新,就要设置浏览器使用协商缓存

  那么后端如何判断资源是否更新了呢?这时就要用到etag和last-modified两项响应头。

  每次收到一个静态资源的请求时,后端都将资源的最后修改时间(last-modified)、根据资源内容计算出来的etag放在响应头给前端

  前端收到响应后将这两项缓存起来,然后在下次请求同样资源的时候,将这两项的内容放到if-modified-since和if-none-match这两项请求头中。

  服务端收到这两项后,会与资源当前生成的etag和last-modified做比较,如果两者都一致,说明资源没有更新,服务端会返回304空响应;否则,说明资源有更新,服务端会将完整的资源内容返回

实现

  那么如何实现这样一个复杂的过程呢?其实很简单,只要使用nginx作为静态资源的服务器,再在响应头加上cache-control:no-cache就可以了。

  下面来分步骤实现一下

  1. 使用nginx作为静态资源的服务器

    在nginx的配置中,将对静态资源的请求映射到资源的磁盘路径上

Http {  server {  listen 80;  ...  location /picture/ {    alias d:/luozixi/tcp_test/picture/;    # alias是重定义路径    # 比如访问127.0.0.1/picture/1_new.gif,则会映射为访问d:/luozixi/tcp_test/picture/1_new.gif    # WEB应用根本不会收到请求,picture的请求都被nginx处理了    # alias是替换,root是拼接    autoindex on;    # 访问127.0.0.1/picture/,会得到目录的索引界面    }  }}

  2. 重新加载nginx配置

nginx -s reload

  3. 此时,请求静态资源的时候nginx会自动在response头中加上etag和last-modified两项

  基于nginx如何设置浏览器协商缓存

  4. 但是这时发现,如果不配置cache-contrl: no-cache,浏览器在下次请求这个资源的时候不会将请求发向后端,而是直接从缓存中获取资源

  5. 在nginx中配置

location /picture/ {   add_header cache-control no-cache;  alias d:/luozixi/tcp_test/picture/; }

  6.清除浏览器缓存后第一次发起请求,会得到一个正常的200 response,而且响应头里已经有了cache-control: no-cache,表示使用协商缓存

  7.再次发起请求后,会发现请求头已经带上了if-modified-since和if-none-match两项

  基于nginx如何设置浏览器协商缓存

  8.服务端(nginx)收到这两项后,会与资源当前生成的etag和last-modified做比较,如果两者都一致,说明资源没有更新,服务端会返回304空响应;否则,说明资源有更新,服务端会将完整的资源内容返回

    另外,服务器验证if-modified-since的方式只是简单的字符串比较,即使资源的last-modified比if-modified-since要早,服务端仍认为资源有更新

  9.浏览器在收到304响应后,会从浏览器缓存中取资源。因此速度非常块

  基于nginx如何设置浏览器协商缓存

no-cache与no-store的区别

  no-cache表示不缓存过期资源,缓存会向服务器进行有效处理确认之后处理资源

  而no-store才是真正的不进行缓存。

关于“基于nginx如何设置浏览器协商缓存”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: 基于nginx如何设置浏览器协商缓存

本文链接: https://lsjlt.com/news/330738.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 基于nginx如何设置浏览器协商缓存
    这篇文章主要介绍“基于nginx如何设置浏览器协商缓存”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于nginx如何设置浏览器协商缓存”文章能帮助大家解决问题。强缓存与协商缓存的区别  强缓存:浏...
    99+
    2023-06-30
  • 如何配置浏览器缓存和webpack缓存
    这篇文章主要介绍了如何配置浏览器缓存和webpack缓存,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。浏览器缓存浏览器缓存分为两种类型:强缓...
    99+
    2024-04-02
  • js前端面试常见浏览器缓存强缓存及协商缓存实例
    目录前言搭建环境强缓存协商缓存Etag和If-None-MatchLast-Modify和if-modified-since前言 最近在背面试题时,时常会看见浏览器缓存,虽然没有用过...
    99+
    2024-04-02
  • js前端面试常见浏览器缓存强缓存及协商缓存的方法
    这篇文章主要介绍“js前端面试常见浏览器缓存强缓存及协商缓存的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“js前端面试常见浏览器缓存强缓存及协商缓存的方法”文章能帮助大家解决问题。前言浏览器缓...
    99+
    2023-07-02
  • windows ie浏览器如何清除浏览器缓存
    本篇内容主要讲解“windows ie浏览器如何清除浏览器缓存”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“windows ie浏览器如何清除浏览器缓存”吧!ie浏览器清除浏览器缓存的方法:首先...
    99+
    2023-07-02
  • 基于HTTP浏览器缓存机制全面解析
    目录什么是浏览器缓存非HTTP协议定义的缓存机制缓存流程图HTTP缓存机制服务端如何判断缓存已失效Last-Modified/If-Modified-SinceEtag/If-Non...
    99+
    2024-04-02
  • windows edge浏览器缓存位置如何修改
    这篇文章主要讲解了“windows edge浏览器缓存位置如何修改”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“windows edge浏览器缓存位置如何修改”吧!edge浏览器缓存位置更改...
    99+
    2023-07-01
  • win8如何清除浏览器缓存
    这篇文章主要介绍了win8如何清除浏览器缓存的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇win8如何清除浏览器缓存文章都会有所收获,下面我们一起来看看吧。win8清除浏览器缓存的方法1、打开浏览器之后点击上方...
    99+
    2023-07-04
  • 电脑如何清除浏览器缓存
    这篇文章主要介绍“电脑如何清除浏览器缓存”,在日常操作中,相信很多人在电脑如何清除浏览器缓存问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”电脑如何清除浏览器缓存”的疑惑有所帮...
    99+
    2022-12-01
    电脑
  • win7系统如何清除浏览器缓存
    这篇文章主要介绍了win7系统如何清除浏览器缓存,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。以IE浏览器为例,在浏览器的菜单栏中点击工具,然后点击“internet选项”;...
    99+
    2023-06-28
  • VueSPA如何解决浏览器缓存问题
    目录Vue SPA 解决浏览器缓存Vue 微信浏览器缓存问题Vue SPA 解决浏览器缓存 如何让发布到线上的 vue 单页应用能及时更新到浏览器,而无需用户强制刷新页面呢? 因为 ...
    99+
    2022-11-13
    Vue浏览器缓存 Vue缓存 Vue SPA 浏览器缓存
  • 浏览器如何设置密码
    这篇文章主要介绍浏览器如何设置密码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!打开ie浏览器,点击右上角的“工具”选择“Internet选项”。在打开的”Internet选项“中将其切换至“内容”选项,点击”启动“...
    99+
    2023-06-28
  • win10系统中如何清除浏览器缓存
    小编给大家分享一下win10系统中如何清除浏览器缓存,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!打开浏览器,点击右上角的图标选择开始菜单进行设置。点击选择要清除...
    99+
    2023-06-27
  • Win7如何如何设置QQ打开的浏览器是IE浏览器
      Win7下IE浏览器是自带的,如今也有很多的浏览器已经进入大家的电脑中,但是据我所知大多数用户还是习惯了使用IE浏览器。QQ广告已经进入我们的市场,很多用户都会经过QQ中的链接来打开一些网页但是往往经常打开的却不是大...
    99+
    2023-06-15
    Win7 浏览器 QQ链接 IE
  • deepin20默认浏览器如何设置
    这篇文章给大家分享的是有关deepin20默认浏览器如何设置的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。deepin20中可以自定义设置默认浏览器,该怎么设置呢?下面我们就来看看详细的教程。点任务栏上的启动器,...
    99+
    2023-06-10
  • win10如何设置默认浏览器
    要设置默认浏览器,您可以按照以下步骤操作:1. 点击开始菜单,然后选择“设置”图标(齿轮形状)。2. 在打开的窗口中,选择“应用”。...
    99+
    2023-09-09
    win10
  • win11浏览器主页如何设置
    这篇文章主要介绍了win11浏览器主页如何设置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇win11浏览器主页如何设置文章都会有所收获,下面我们一起来看看吧。首先打开浏览器,点击右上角的“三个点”接着在下拉菜...
    99+
    2023-07-02
  • Win10系统如何清理猎豹浏览器缓存?Windows10清理猎豹浏览器缓存的两种方法
    方法一:使用360清理 1、打开360安全卫士,点击【电脑清理】; 360安全卫士最新版 v13.0.0.2113 官方免费安装版类型:网络安全大小:85.1MB语言:简体中文时间:2022-10-31查看详情 2、点...
    99+
    2023-05-21
    Windows10 猎豹浏览器 缓存 浏览器
  • 基于Qt如何实现SVG图片浏览器
    本篇内容主要讲解“基于Qt如何实现SVG图片浏览器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于Qt如何实现SVG图片浏览器”吧!介绍SVG的英文全称是Scalable Vector Gra...
    99+
    2023-07-02
  • 如何解决Ajax中浏览器的缓存问题
    这篇文章主要讲解了“如何解决Ajax中浏览器的缓存问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何解决Ajax中浏览器的缓存问题”吧! ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作