浏览器缓存(http缓存),第1张

浏览器缓存有两种:强制缓存和协商缓存

向浏览器缓存中查找请求结果,根据缓存规则决定是否使用该结果。

强制缓存失效后,携带缓存标识请求服务器,服务器根据缓存标识判断是否使用缓存

当浏览器向服务器发送请求的时候,服务器会将缓存规则放入HTTP响应的报文的HTTP头中和请求结果一起返回给浏览器(ps:下文说的时间点均为类似:Sat Aug 14 2021 11:01:52,秒级)

两个字段:Expires和Cache-Control,优先级:Cache-Control > Expires,客户端比较时间

Expires :HTTP/10,返回值为到期时间点,再次请求,客户端的时间< Expires,直接用缓存(ps:客户端与服务器端时间可能存在误差,出问题)

Cache-Control :HTTP/11,有以下字段

Last-Modified / If-Modified-Since 和 Etag / If-None-Match,优先级Etag > Last-Modified,服务器比较时间

Last-Modified(服务端返回客户端) / If-Modified-Since(客户端传入服务端) :两个值相同,表示:资源文件在服务器最后被修改的时间时间点。

Etag(服务端返回客户端) / If-None-Match(客户端传入服务端) ,两个值相同,为当前资源文件的一个唯一标识(由服务器生成)

Etag什么时候用

雅虎禁用了Etag:因为ETag的值和服务器有关,那么对于同样的文件,可能下次请求的时候是发给不同的服务器,结果也会重新发送数据,所以就会影响网页加载速度,增加服务器的压力(但Last-Modified也与服务器有关)

主要解决的问题:

浏览器的每个tab都是一个进程

两个缓存的地方 from memory cache(内存缓存) from disk cache(硬盘缓存) ,读取顺序为memory > disk

TCP/IP协议中TTL的单位是秒或跳站数目(hop);

TTL(生存时间):表示DNS记录在DNS服务器上缓存时间,就是一条域名解析记录在DNS服务器中的存留时间。当各地的DNS服务器接受到解析请求时,就会向域名指定的NS服务器发出解析请求从而获得解析记录;在获得这个记录之后,记录会在DNS服务器中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向NS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 浏览器缓存(http缓存)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情