http协议缓存小结

缓存可以使用expire方式,设置到期时间,缓存的时间等于expire设置的时间减去当前的时间

也可以使用no-cache的方式进行缓存,当设置了no-cache的方式时,以no-cache的为准,expire不起作用

no-cache下常见的有no-store,no-cache,max-age,must-revalidate

no-store,不做缓存,每次返回200,拉取最新的资源

no-cache缓存一份,每次会读取最新的缓存内容

max-age配合must-revalidate使用,每次校验是否过期,如果没过期就读取缓存返回403,当设置了no-cache时,以no-cache为准

如何判断是否是最新的缓存

浏览器会记录上次http请求的last-modified和E-tag分别保存在本地的if-modified-since和if-none-match字段里,

发送请求时会带上,if-none-match和if-modified-since字段去服务端,和Etag和last-modified比较,

这两组也可以单独比较来判断缓存是否是最新

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ytkah

dedecms建的网站如何去掉/index.html

DEDECMS建立的网站,www.abc.com/index.html和www.abc.com两个都可以访问,而且两个页面都是一样的,这样就会造成重复页面,对搜...

3556
来自专栏Python爬虫与数据挖掘

如何在交互式环境中执行Python程序

相信接触过Python的小伙伴们都知道运行Python脚本程序的方式有多种,目前主要的方式有:交互式环境运行、命令行窗口运行、开发工具上运行等,...

1453
来自专栏Java成神之路

Java微信开发_03_使用测试号进行开发

今天进行自定义菜单的开发时,发现公众号没有自定义菜单的权限。于是想到用测试号,但微信服务器如何区分你要请求的是公众号还是测试号呢。

813

如何用split命令来拆分文件

split是一个类似于grep或tail的Unix命令行实用程序。它允许您将较大的文件分成几个较小的文件。

1213
来自专栏mySoul

Node.js多进程

使用子进程的执行命令,缓存子进程的输出。并将子进程的输出以回调函数参数的形式进行返回

1590
来自专栏深度学习之tensorflow实战篇

pycharm 之模块与模块引用

首先在pycharm,创建文件的快捷键ALT+INS,可以将自己常用的模版导入 ? 其次函数的模块调用规则如下图 ? 模块引用并指导源文...

3659
来自专栏AI派

Python 程序执行时如何显示进度条?

先来说下 tqdm 的使用场景,工作中有时候会遇到这样的问题,想要将某个任务执行很多次,显而易见,可以使用 for 循环来控制它重复执行很多次。

1554
来自专栏Small Code

【Python】numpy 中的 copy 问题详解

这篇文章本是我在 segmentfault 上的一个回答,但是越来越觉得有必要单独拿出来,毕竟这个问题挺常见的。具体可参看 numpy 官方文档 。 正文 nu...

21610
来自专栏赵俊的Java专栏

Python 文件操作

2763
来自专栏JetpropelledSnake

Python入门之面向对象module,library,package之间区别

背景 Python中有一些基本的名词,很多人,尤其是一些初学者,可能听着就很晕。 此处,简单总结一下,module,library,package之间的大概区别...

31511

扫码关注云+社区

领取腾讯云代金券