Http的缓存有哪些

HTTP 缓存可以通过多种 HTTP 头部字段来控制,主要包括以下几种:
1.Expires:这个字段定义了响应的过期时间。如果当前时间小于 Expires 的时间,那么就可以直接使用缓存。

2.Cache-Control:这个字段是一个指令,它可以定义缓存的行为。例如,no-cache 表示每次都要向服务器验证缓存的有效性,no-store 表示不缓存响应,max-age 定义了缓存的最大有效时间。

3.Last-Modified 和 If-Modified-Since:服务器在响应中发送 Last-Modified 字段,表示资源最后修改的时间。客户端在下次请求时,可以发送 If-Modified-Since 字段,如果资源没有修改,服务器会返回 304 状态码,表示可以使用缓存。

4.ETag 和 If-None-Match:ETag 是服务器为每个资源生成的一个唯一标识符。客户端在下次请求时,可以发送 If-None-Match 字段,如果 ETag 没有变化,服务器会返回 304 状态码,表示可以使用缓存。

这些字段可以组合使用,以实现复杂的缓存策略。例如,可以使用 Cache-Control: no-cache 和 ETag,这样每次请求都会向服务器验证缓存的有效性,但只有当资源真正改变时,才会下载新的内容。

相关推荐
进阶的小名12 小时前
[超轻量级延时队列(MQ)] Redis 不只是缓存:我用 Redis Stream 实现了一个延时MQ(自定义注解方式)
java·数据库·spring boot·redis·缓存·消息队列·个人开发
短剑重铸之日12 小时前
《7天学会Redis》Day 6 - 内存&性能调优
java·数据库·redis·缓存·7天学会redis
Voyager_413 小时前
OS八股:HTTP 与 WebSocket 的通信模型差异 —— 理解等待、轮询、阻塞与全双工
websocket·网络协议·http
(Charon)13 小时前
【DPDK实战】编写一个高性能 UDP 抓包程序
网络·网络协议·udp
a努力。13 小时前
字节跳动Java面试被问:一致性哈希的虚拟节点和数据迁移
java·开发语言·分布式·算法·缓存·面试·哈希算法
VT.馒头13 小时前
【力扣】2622. 有时间限制的缓存
javascript·算法·leetcode·缓存·typescript
短剑重铸之日14 小时前
《7天学会Redis》Day 3 - 持久化机制深度解析
java·redis·后端·缓存
克里斯蒂亚诺更新14 小时前
https写一个定位当前位置获取经纬度的H5页面
css·网络协议·https
qq_4351395714 小时前
多级缓存(Caffeine+Redis)技术实现文档
数据库·redis·缓存
北京耐用通信15 小时前
耐达讯自动化Profibus总线光纤中继器:破解石油化工分析仪器通讯难题
网络·人工智能·科技·物联网·网络协议·自动化·信息与通信