HTPP缓存,浏览器会对静态文件进行缓存行为
客户端 - 浏览器(缓存数据库) - 服务器
第一次请求数据
![](https://img.haomeiwen.com/i13540125/077e34a8977b9562.png)
*强制缓存
客户端向浏览器发请求,如果没有缓存数据,向服务器发请求,如果有缓存数据就不再向服务器发请求,直接使用缓存数据
![](https://img.haomeiwen.com/i13540125/8023959e94e0403b.png)
如何判断缓存是否失效:
请求头header的Expires(http1.0的,在http1.1作用忽略)-服务器返回的到期时间,缺点但可能会跟客户端的时间有误差
请求头header的Cache-Control:
private(默认): 客户端可以缓存
public: 客户端和代理服务器都可缓存(前端的同学,可以认为public和private是一样的)
max-age=xxx: 缓存的内容将在 xxx 秒后失效
no-cache: 需要使用对比缓存来验证缓存数据(后面介绍)
no-store: 所有内容都不会缓存,强制缓存,对比缓存都不会触发(对于前端开发来说,缓存越多越好,so...基本上和它说886)
*对比缓存
客户端向缓存数据发请求,不管有没有缓存数据都会请求服务器
![](https://img.haomeiwen.com/i13540125/014f4e712e0c7d0c.png)
https://www.cnblogs.com/chenqf/p/6386163.html
content-type字段
服务器回应的时候,必须告诉客户端,数据是什么格式,这就是content-type的作用
常见的 一级类型/二级类型
content-type字段
text/plain
text/html
text/css
image/jpeg
image/png
image/svg+xml
audio/mp4
video/mp4
application/javascript
application/pdf
application/zip
application/atom+xml
Response Headers
Accept:/
Connection: keep-alive 持久连接(同一域名下,,大多数浏览器允许同时建立6个
持久连接)
Content-Type: text/html; charset=utf-8 发送的是网页,编码utf-8
Content-Length:3459 本次回应的长度是3495个字节,后面的字节就属于下一个
回应了
网友评论