HTTP 协商缓存 Last-Modified,If-Modified-Since

2023-09-22 16:01:13

浏览器第一次跟服务器请求一个资源,服务器在返回这个资源的同时,在respone header加上Last-Modified属性(表示这个资源在服务器上的最后修改时间)

--------------------------------------------------------------------------------------------------------------------------------

浏览器再次跟服务器请求这个资源时,在request header上加上If-Modified-Since属性(该值就是上一次请求时返回的Last-Modified的值)

服务器再次收到资源请求时,根据浏览器传过来If-Modified-Since和资源在服务器上的最后修改时间判断资源是否有变化,如果没有变化则返回304 Not Modified,但是不会返回资源内容;如果有变化,就正常返回资源内容。

浏览器收到304的响应后,就会从缓存中加载资源。

如果协商缓存没有命中,浏览器直接从服务器加载资源时,Last-Modified Header在重新加载的时候会被更新,下次请求时,If-Modified-Since会启用上次返回的Last-Modified值。

一般来说,在没有调整服务器时间和篡改客户端缓存的情况下,这两个essay-header配合起来管理协商缓存是非常可靠的,但是有时候也会服务器上资源其实有变化,但是最后修改时间却没有变化的情况,就会影响协商缓存的可靠性。

更多推荐

大型架构设计的演进之路

Java全能学习+面试指南:https://javaxiaobear.cn今天我们一起看看大型互联网系统架构的演进之路,主要包含三部分内容。第一部分是大型互联网系统的特点,分析大型互联网有哪些特点和挑战,它们是现在一些技术和架构方案产生的原因。第二部分是系统处理能力提升的两种途径,提供了两种面对挑战的解决思路。第三部分

Java-day14(多线程)

多线程0.基本概念程序:为完成特定任务,用某种编程语言编写的一组指令的集合(静态)进程:程序的一次执行过程,或正在执行的一个程序(动态过程)线程:程序内部的一条执行路径,若某个程序支持同一时间执行多个线程,即支持多线程1.多线程的创建和使用继承Thread类创建多线程一个线程只能执行一次start()不能通过Threa

VR科普研学基地科普开放日普乐蛙VR体验馆沉浸式体验设备

广州科普开放日来啦2023年9月广州科普开放日来啦,9月16日周六上午9点,广州卓远非常荣幸地迎来了一批前来体验的家庭。比原定的集合时间提前了近1个小时,已经开始有家长带着小朋友来到了VR科普基地,可见大家对VR科普体验的热情和兴趣之高。趣味VR科普,市民抢着报名!9月科普开放日活动共有131家国家级重点实验室、省级重

2023上半年薪资报告出炉!人均月入过万?!

最近,大家都有听到经济回暖的消息吧?经过三年口罩大考之后,2023年上半年各行各业都迎来复苏,关于职场的话题讨论也不绝于耳。现在就业环境如何?哪些行业更有前途?大家在求职时是选择一线城市还是回二、三线城市?……对于这一系列职场话题,近期猎聘发布的《2023上半年人才流动与薪酬趋势报告》中,列举了很多关于当前人才市场的趋

一台PoE交换机可以为多少个设备提供供电?

如今在安防监控领域,许多网络设备都支持PoE供电。在网络监控工程中,为了节省布线成本并提高便捷性,大多数工程商选择使用PoE供电方案,也就是使用PoE交换机为监控摄像头提供电力。那么,一台功率输出以太网(PoE)工业交换机能够为多少个设备提供电力呢?1、PoE交换机供电标准对于初次接触PoE供电的朋友来说,可能对PoE

使用Selenium进行网页登录和会话管理

随着互联网的快速发展,网页登录和会话管理是许多网站和应用程序的基本功能。通过网页登录,用户可以访问个人账户、购物车订单、历史记录等个性化信息。为了提高用户体验和效率,自动化登录和会话管理成为一个重要的需求。而Selenium作为一种强大的Web自动化工具,为开发人员提供了便捷的方式来实现这些功能。例如我们在访问京东网站

LC926. 将字符串翻转到单调递增(JAVA - 动态规划)

将字符串翻转到单调递增题目描述动态规划题目描述难度-中等LC926.将字符串翻转到单调递增(JAVA-动态规划)如果一个二进制字符串,是以一些0(可能没有0)后面跟着一些1(也可能没有1)的形式组成的,那么该字符串是单调递增的。给你一个二进制字符串s,你可以将任何0翻转为1或者将1翻转为0。返回使s单调递增的最小翻转次

@SpringBootApplication注解说明(InsCode AI 创作助手)

@SpringBootApplication是SpringBoot中的一个关键注解,用于标识一个类是SpringBoot应用程序的主应用程序类。在这篇文章中,我们将详细解释@SpringBootApplication注解以及它在SpringBoot应用程序中的作用。@SpringBootApplication注解的作用

Docker容器数据持久化存储机制

这里写目录标题一、Docker容器数据持久化存储介绍二、Docker容器数据持久化存储方式三、Docker容器数据持久化存储方式应用案例演示3.1dockerrun-v3.1.1创建了本地目录3.1.2未创建本地目录3.2volumes3.2.1创建数据卷3.2.2使用数据卷一、Docker容器数据持久化存储介绍物理机

记录一次久远git仓库迁移

因为项目需求,公司收购了一个第三方的项目,包含源码。需要将该项目上传到我们公司自己的gitlab上。没过脑子一顿操作://查询远程链接gitremote-v//删除原有链接gitremotermorigin//如果需要修改分支名gitbranch-moldnamenewname//修改为自己的gitlab地址gitre

美创科技参编《数字政府建设与发展研究报告(2023)》 正式发布

9月14日,中国信息通信研究院云计算与大数据研究所牵头编制的《数字政府建设与发展研究报告(2023)》正式发布。美创科技结合在政务数据安全领域的丰富实践经验,参与报告编写。《数字政府建设与发展研究报告》以“技术、业务、数据融合发展路径探索”为主题,剖析当前数字政府建设时代内涵,梳理当前数字政府建设与发展现状,从技术、业

热文推荐