浏览器缓存

简介: HTTP缓存依赖Cache-Control和ETag实现。Cache-Control通过public、private、no-cache等指令控制缓存范围与行为,max-age、s-maxage设置缓存时长,must-revalidate控制过期验证;ETag为资源生成唯一标识,客户端通过If-None-Match比对,判断是否返回304,节省带宽,提升性能。

Note
Http 的缓存主要利用 header 里的Cache-control 和 ETag
1.Cache-control
1.1 Cache-control主要字段
● public
○ 指HTTP请求返回的资源在所经过的所有路径包括一些中间代理服务器以及发出这个请求的客户端浏览器都可以进行缓存
● private
○ 代表发起请求的浏览器才可以进行缓存
● no-cache
○ 指可以存缓存,但是每次使用都需要去服务端验证
● no-store
○ 本地和代理服务器都不允许去缓存
● no-transform
○ 不允许代理/缓存服务器转换文件格式
1.1.1 到期
● max-age=
○ 缓存到期时间
● s-maxage=
○ 代理服务器专用
● max-stale=
○ 指示客户机可以使用超出max-age时间的响应
1.1.2 重新验证
● must-revalidate
○ 设置了max-age的资源过期后必须到源服务端验证资源是否还可用
● proxy-revalidate
○ (缓存服务器用)设置了max-age的资源过期后必须到源服务端验证资源是否还可用
1.2 Etag
1.2.1 ETag资源标识码
即用来进行对比缓存,Etag 是服务端资源的一个标识码
当客户端发送第一次请求时服务端会下发当前请求资源的标识码 Etag,下次再请求时,客户端则会通过 header 里的 If-None-Match 将这个标识码 Etag 带上,服务端将客户端传来的 Etag 与最新的资源 Etag 做对比,如果一样,则表示资源没有更新,返回 304。

相关文章
|
JavaScript 数据可视化 前端开发
echart图表
echart图表
300 0
【其他】邮箱的IMAP/SMTP服务开启与关闭(实现邮箱发送验证码的前提)
【其他】邮箱的IMAP/SMTP服务开启与关闭(实现邮箱发送验证码的前提)
2538 0
【其他】邮箱的IMAP/SMTP服务开启与关闭(实现邮箱发送验证码的前提)
|
存储 SQL 安全
加密后的数据如何进行模糊查询?
在数据安全和隐私保护日益重要的今天,加密技术成为保护敏感数据的重要手段。然而,加密后的数据在存储和传输过程中虽然安全性得到了提升,但如何对这些数据进行高效查询,尤其是模糊查询,成为了一个挑战。本文将深入探讨如何在保证数据安全的前提下,实现加密数据的模糊查询功能。
1986 0
|
15天前
|
存储 数据采集 搜索推荐
状态检索:如何快速判断一个用户是否存在?
本文探讨了高效判断对象是否存在的技术方案,对比有序数组、二叉树和哈希表后,重点介绍位图与布隆过滤器。位图利用bit级存储,大幅节省空间;布隆过滤器通过多哈希函数映射,以极小错误率换取更高空间效率,适用于注册去重、爬虫判重等场景,是时间与空间权衡的典范。
|
Linux 文件存储
定期删除服务器n天前日志
该内容介绍了如何在Linux中删除指定目录及子目录下超过n天的文件。使用`find`命令结合参数`/nas/logs/* -maxdepth 3 -type d -ctime +6`查找6天前的目录,然后通过`xargs rm -rvf`进行删除。在CentOS中,可以编辑crontab设置定时任务,例如每天1点执行此删除操作:`0 1 * * * find /nas/logs/* -maxdepth 3 -type d -ctime +6 | xargs rm -rvf`,其中`+6`可按需调整。
284 2
|
JavaScript 前端开发
vue实现登录界面
vue实现登录界面
372 0
|
SQL 缓存 网络协议
网络信息安全实验 — 网络攻击技术实验(Kali系统,John、lc7、arpspoof、ettercap、SQL注入...)
本人深感网络安全实验有点麻烦,花了一个晚上弄了部分,特此将笔记贡献造福后人,个人能力有限,还会继续更新。。。 汇报题目:**15分钟教你用 Python 写一个 arpspoof**(课件准备ing,如果弄完后续补上) 第一次网络安全实验(密码学)也是我做的,这里先放个自制工具:[Java实现密码学工具,集成了对称加密算法DES,AES,IDEA,公开加密算法RSA,ECC,散列算法MD5,SHA1,CRC32,以及RSA,DSA,ECDSA数字签名验证示例。](https://blog.csdn.net/weixin_43734095/article/details/105303562)
1969 0
网络信息安全实验 — 网络攻击技术实验(Kali系统,John、lc7、arpspoof、ettercap、SQL注入...)
|
Ubuntu 开发工具 git
ESP32-C3 VScode开发环境搭建(基于ESP-IDF—Windows和Ubuntu双环境)
对于ESP32-C3开发,自己对Arduino环境使用起来很是不习惯,既然乐鑫官方都出对应的环境,还是来试试官方环境
3850 0
ESP32-C3 VScode开发环境搭建(基于ESP-IDF—Windows和Ubuntu双环境)
|
数据采集
IQR法(四分位距法)
IQR法(四分位距法)
|
NoSQL 算法 安全
Redis 分布式锁的正确实现原理演化历程与 Redisson 实战总结
Redis 分布式锁的正确实现原理演化历程与 Redisson 实战总结
1006 1