HTTP cache in depth
HTTP cache in depth
HTTP 缓存

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Caching_FAQ


强缓存 200
Expires (HTTP/1.0) ?
Cache-Control (HTTP/1.1)
max-age
s-maxage
public/ private
优先级
协商缓存 304
ETag
last-modified
浏览器缓存 / web 缓存
- Memory Cache
- Service Worker
- HTTP cache
- Application Cache API (已弃用️)
...
memory cache
200



cache-control / ETag
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9
https://github.com/h5bp/server-configs
http://httparchive.org/trends.php#maxage0



PWA
cookie
LocalStorage
SessionStorage
IndexedDB
Web SQL (已弃用️,停止维护,支持者太少了,sqlite)
https://developers.google.com/web/tools/chrome-devtools/storage/applicationcache
https://html.spec.whatwg.org/multipage/offline.html#offline
https://developers.google.com/web/tools/chrome-devtools/storage/websql
https://www.w3.org/TR/webdatabase/#status-of-this-document
HTTP/1.1 HTTP/2 HTTP/3 (QUIC)
- 多路复用

http cache 缓存的位置
https://segmentfault.com/a/1190000020086923
从缓存位置上来看,分为4种,从上往下依次检查是否命中,如果但都没有命中则重新发起请求。
Service Worker 是运行在浏览器背后的独立线程,一般可以用来实现缓存功能。
使用 Service Worker的话,传输协议必须为 HTTPS。
Memory Cache 也就是内存中的缓存,主要包含的是当前中页面中已经抓取到的资源,例如页面上已经下载的样式、脚本、图片等。读取内存中的数据肯定比磁盘快,内存缓存虽然读取高效,可是缓存持续性很短,会随着进程的释放而释放。
一旦我们关闭 Tab 页面,内存中的缓存也就被释放了。
内存缓存中有一块重要的缓存资源是preloader相关指令(例如)下载的资源。
它可以一边解析js/css文件,一边网络请求下一个资源。
Disk Cache 也就是存储在硬盘中的缓存,读取速度慢点,但是什么都能存储到磁盘中,比之 Memory Cache 胜在容量和存储时效性上。
绝大部分的缓存都来自Disk Cache,在HTTP 的协议头中设置。
Push Cache(推送缓存)是 HTTP/2 中的内容,当以上三种缓存都没有命中时,它才会被使用。
它只在会话(Session)中存在,一旦会话结束就被释放,并且缓存时

xgqfrms 2012-2020
www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!
HTTP cache in depth的更多相关文章
- Graphics-Processing Architecture Based on Approximate Rendering
BACKGROUND The present invention generally relates to the processing of graphics data, and particula ...
- Design Of A Modern Cache
http://highscalability.com/blog/2016/1/25/design-of-a-modern-cache.html MONDAY, JANUARY 25, 2016 AT ...
- OpenRisc-41-or1200的cache模块分析
引言 为CPU提供足够的,稳定的指令流和数据流是计算机体系结构设计中两个永恒的话题.为了给CPU提供指令流,需要设计分支预测机构,为了给CPU提供数据流,就需要设计cache了.其实,无论是insn还 ...
- In Depth : Android Boot Sequence / Process
In Depth : Android Boot Sequence / Process What happened when I press power on button in my Android ...
- [翻译] Fast Image Cache
https://github.com/path/FastImageCache Fast Image Cache is an efficient, persistent, and—above all—f ...
- Oracle-buffer cache、shared pool
http://blog.csdn.net/panfelix/article/details/38347059 buffer pool 和shared pool 详解 http://blog.csd ...
- HTML5 in depth
HTML5 in depth Content Models Web Storage web storage 存储用户信息, 替代 cookies LocalStorage SessionStorage ...
- ASP.NET Core 折腾笔记二:自己写个完整的Cache缓存类来支持.NET Core
背景: 1:.NET Core 已经没System.Web,也木有了HttpRuntime.Cache,因此,该空间下Cache也木有了. 2:.NET Core 有新的Memory Cache提供, ...
- [Java 缓存] Java Cache之 DCache的简单应用.
前言 上次总结了下本地缓存Guava Cache的简单应用, 这次来继续说下项目中使用的DCache的简单使用. 这里分为几部分进行总结, 1)DCache介绍; 2)DCache配置及使用; 3)使 ...
随机推荐
- XA Transactions
XA Transactions XA is a two-phase commit protocol that is natively supported by many databases and t ...
- 作为一款内存数据库,为什么断电后Redis数据不会丢失
前言 Redis 作为一款内存数据库,被广泛使用于缓存,分布式锁等场景,那么假如断电或者因其他因素导致 Reids 服务宕机,在重启之后数据会丢失吗? Redis 持久化机制 Redis 虽然是定义为 ...
- P5689 多叉堆
写在前面 OI 生涯中 AC 的首道组合数学应用题. 开题 5min 发现规律,写了半下午代码,调了两天,然而甚至没过样例,心态崩了.几天之后重新写了一份代码才 AC. 虽然思维难度不大,但毕竟是联赛 ...
- 11.15 gryz校测(题解分析报告)
T1 心有灵犀 (cooperate) 题目大意 给你一个不超过 \(10^9\) 的数字 \(n\) 和一个交换次数上限 \(k\), 每次操作对这个 数字 \(n\) 的其中两位进行交换, 比如 ...
- nodejs如何下载指定版本
浏览了一下nodejs的官网,但是官网没有下载低版本的下载地址,所以找了一个可以下载指定版本node的下载地址https://nodejs.org/download/release/v8.9.4/
- linux下安装 zookeeper-3.4.9并搭建集群环境
本文主要记录作者在实践过程中实现在centos7环境下安装zookeeper并搭建集群的详细步骤,关于zookeeper本文将不做详细介绍,安装步骤详情如下: 前提准备:3台linux服务器(因为zo ...
- jvm系列三垃圾回收
三.垃圾回收 1.如何判断对象可以回收 引用计数法 弊端:循环引用时,两个对象的计数都为1,导致两个对象都无法被释放 可达性分析算法 JVM中的垃圾回收器通过可达性分析来探索所有存活的对象 扫描堆中的 ...
- linux终端的快捷命令汇总
作者:良知犹存 转载授权以及围观:欢迎添加微信公众号:Conscience_Remains 总述 今天来一篇介绍文哈,关于Linux终端的快捷键的介绍.也是有起因的,最近在移植yocto在服务 ...
- java面试必备String详解
引言 众所周知在java里面除了8种基本数据类型的话,还有一种特殊的类型String,这个类型是我们每天搬砖都基本上要使用它. String 类型可能是 Java 中应用最频繁的引用类型,但它的性能问 ...
- D - D (畅通工程再续)
相信大家都听说一个"百岛湖"的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现.现在政府决定大力发展百岛湖,发展首先要解决的问题当然是交通问题,政 ...