强缓存与协商缓存原理

news/2025/2/6 9:00:48/

前端开发中,强缓存和协商缓存是两种常用的缓存机制,用于提升网页加载性能和减轻服务器压力。

1. 强缓存:
强缓存通过设置响应头中的"Cache-Control"或"Expires"字段来实现。当浏览器首次请求资源时,服务器会返回带有缓存规则的响应头。浏览器接收到后,会将该资源缓存在本地,在下一次请求该资源之前不会向服务器发送请求。常见的强缓存指令有:
- Cache-Control:用于指定资源的缓存策略。常见的指令有:
  - max-age:指定资源在缓存中的最长时间(秒)。
  - s-maxage:类似于max-age,但仅适用于共享缓存(比如CDN)。
  - public:表示响应可以被任何中间服务器缓存。
  - private:表示响应只能被浏览器缓存,不能被中间服务器缓存。
- Expires:用于指定资源过期的时间,是一个绝对时间点(GMT时间)。如果同时存在Cache-Control和Expires,以Cache-Control为准。

2. 协商缓存:
当浏览器发起请求时,如果已经存在缓存资源,会携带上次请求时返回的缓存标识信息(如"Last-Modified"或"Etag")。服务器接收到请求后,会根据这些标识来判断资源是否有更新。如果资源没有变化,则服务器返回304 Not Modified状态码,响应中不携带实际的资源内容,浏览器则直接使用缓存的资源。如果资源有更新,服务器会返回新的资源和相应的缓存标识。常见的协商缓存字段有:
- Last-Modified:表示资源的最后修改时间。服务器响应中携带该字段。
- If-Modified-Since:表示上次请求时返回的最后修改时间。浏览器请求中携带该字段。
- Etag:表示资源的唯一标识符。服务器响应中携带该字段。
- If-None-Match:表示上次请求时返回的资源标识符。浏览器请求中携带该字段。

协商缓存相比强缓存更加灵活,可以准确地判断资源是否有更新。但与此同时,协商缓存增加了服务器的访问压力,因为每次请求都需要服务器判断资源是否有更新。

在实际应用中,通常会同时使用强缓存和协商缓存,以充分利用缓存机制来提升性能和减轻服务器压力。当强缓存条件不满足时,再使用协商缓存来判断资源是否有更新。


http://www.ppmy.cn/news/632909.html

相关文章

kafka入门,提高生产者吞吐量练习(七)

修改配置Java batch.size 批次大小,默认16k linger,ms 等待时间,修改为5-100ms compression.type 压缩snappy RecordAccmulator 缓冲区大小,修改为64m 代码例子 package com.longer.producer;import org.apache.kafka.clients.producer.Ka…

铁三角ATH-LS70iS

试听 新耳机 。 声场 宽阔 , 立体声很模糊 ,解析力 不清晰 低音 下潜不下去 中频 不通透 高音上不去 待煲机 ,也不够纯净 ,不过耳机的 隔绝 效果 很棒 入耳后 即使 声音 不大 也听不到 外边的 声音 。乍听 觉得我 那条国产 耳机 值20…

蓝牙耳机哪个品牌音质好?高音质蓝牙耳机排行榜

耳机已经成为大家的随身物品,对美而手感舒适的蓝牙耳机,笔者是见一个爱一个。在耳机音质和音乐功能突飞猛进的大背景下,市面上的蓝牙耳机令人眼花缭乱,下面笔者整理了几款高音质蓝牙耳机。 一、南卡小音舱蓝牙耳机 推荐理由&…

运动耳机排行榜10强,运动人士必备的几款运动耳机分享

现在这个大时代,越来越多人都离不开耳机了,耳机也成为大家社交数码设备,走到哪里都可以看到有人佩戴着耳机。很多人在运动的时候也会佩戴上一款运动耳机听音乐,可以激发运动动力,释放压力,跑步起来更加有动…

高端运动耳机哪个品牌最好用、最畅销的高端运动耳机推荐

在健身、运动的时候,过程往往是很枯燥的,这时候,如果能有动感的音乐在旁,调动我们的积极性,就再好不过了,所以很多人在运动的时候都会选择佩戴一款运动蓝牙耳机。不过适合运动的蓝牙耳机少之又少&#xff0…

数学建模—层次分析法

数模算法1:层次分析法 适用问题:评价类问题,决策(方案选择类) ** input**:判断矩阵(A) AHP处理 output:权重(得分)向量 1.整体导图 2.算法步骤及代码 2.1算…

简述JNI开发

参考:《JNI_NDK开发指南》(书籍) 对JNI开发中的一些流程/细节进行总结与记录。 前言. 关于JNI ①什么是JNI JNI全称为Java Native Interface,主要用于实现Java和C/C的通信。 ②JNI的优劣 优势: 能够访问一些底层…