【转】前端缓存介绍

目录

1、一次网页浏览的过程

2、DNS,HTTP,Cookie缓存

3、HTTP缓存

4、HTML5中的缓存


1、一次网页浏览的过程

这里写图片描述

2、DNS解析

Domain Name Service
将域名转换为网络上的实际ip地址
这里写图片描述

浏览器DNS缓存

Chrome 为例:1000条,70s
chrome://net-internals/#dns
这里写图片描述

缓存失效

缓存条数超过上限

  • 列表内容
  • 超时
  • 手动清空
  • 重启浏览器

系统DNS缓存

查看:ipconfig /displaydns
缓存时间: MaxCacheEntryTtlLimit TTL
缓存失效:ipconfig /flushdns 或 修改host
这里写图片描述

3、HTTP缓存

  • 不缓存
  • 强缓存
  • 协商缓存
不缓存

浏览器每次发送接收一个完整的请求
适用于动态页面或接口

强缓存

不发送网络请求直接从缓存读取文件
适用于不常变化的静态文件
这里写图片描述

协商缓存

浏览器询问服务器本地缓存是否有更新
这里写图片描述

HTTP 1.0 协议

Expire:Mon, 27 Jun 2016 03:37:44 GMT
Last-Modified:Fri, 17 Jun 2016 07:32:46 GMT
这里写图片描述
If-Modified-Since:Fri, 17 Jun 2016 07:32:46 GMT
这里写图片描述

HTTP 1.1 协议

Cache-control:

  • max-age =604800
  • no-cache
  • no-store
    这里写图片描述
    ETag/If-None-Match
    这里写图片描述
    这里写图片描述

存储在浏览器的一段文本
会附到http请求中发送
JS可以对cookie读写
这里写图片描述
cookie的属性
Expires
Domain
Path
Secure
HttpOnly
这里写图片描述
Cookie的缺点
4K限制
Domain污染
HTTP头中无用信息增加
Cookie信息泄露

UserData

仅IE支持
XML文件存储

4、HTML5中的缓存

Application Cache
Localstorage & Sessionstorage
WebSQL
IndexedDB

Application Cache

缓存页面和页面内指定的静态资源,使其在无网络情况下也可以正常运行。

如何使用

定义一个缓存清单文件
在页面里指定清单文件
这里写图片描述
这里写图片描述
这里写图片描述

如何更新

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

与HTTP缓存的区别

这里写图片描述

Localstorage & Sessionstorage

Key-value形式存储
每个域名下可以存储5M内容
Localstorage永不过期,除非手动删除
Sessionstorage随浏览器关闭而结束
getItem
setItem
removeIte
key
clear

与cookie的对比

这里写图片描述

Web SQL

一个Html5环境下可以用Js执行CRUD的关系型Web数据库
openDatabase
Transaction
executeSql

IndexedDB

非关系型数据库
异步API
可以建立索引方便查询
支持事务
无大小限制
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

发布了77 篇原创文章 · 获赞 55 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/langhailove_2008/article/details/82493201