http协议(缓存)

110 阅读1分钟

http协议(缓存)

缓存是一种直接保存资源副本,并且在下次请求时不直接访问服务器而直接使用资源副本的技术。

共享缓存

能被任意代理服务器、客户端缓存的资源。

头部设置:

Cache-Control:public;max-age=3600;s-maxage=5000;

私有缓存

只能被单独用用户缓存的资源,禁止任何代理服务器缓存。

头部设置:

Cache-Control:private;max-age=3600;

Cache-control 相关命令解释

public: 表示该资源可被多个客户端缓存(客户机、代理服务器)。

private: 表示该资源为私有缓存,禁止任何代理服务器缓存该资源。

max-age:相对时间,表示该资源多少秒后过期。

s-maxage:功能和max-age类似,但它只适用于共享缓存。

no-store: 没有缓存,每一次请求都会直接发送发到服务器。

no-cache: 表示客户端可以缓存,但每次使用之前必须和服务器进行验证。

must-revalidate: 在提供较陈旧的缓存时,必须和服务器进行新鲜度验证。

其他配合字段

Last-Modified: 该资源最后一次更改的时间,GMT格式的时间。

- 配合校验请求头:If-Modified-Since:<Last-Modified>

Etag: 强校验器,相当于该资源的签名。

- 配合校验请求头:If-None-Match:<Etag>

缓存工作流程

cache.png