We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
所有的资源都从服务器拉,如果在大量资源的情况下,造成的结果就是可能会造成一个比较长的的等待时间,从优化的角度上来说是不太能忍的_(:з」∠)_,所以为了提高页面的访问速度,在进行资源访问的时候,浏览器会根据资源返回的header头来进行相应的缓存设置。可能采用的是强缓,也可能会采用协商缓存。
返回的header头会包含着一些有关于缓存机制的描述信息,客户端直接根据描述信息进行操作(如果缓存命中则返回200),其中和强制缓存相关的字段为Expires和Cache-Control。这两个字段主要是用来区分缓存的过期时间,具体区别如下:
Expires
Cache-Control
Expires是http1.0的规范,格式是一个GMT时间格式的字符串,如Sun Jun 03 2018 14:47:26 GMT,是服务器返回的资源到期时间,如果请求的时间在该时间之前则视为有效。但一个隐藏的问题是,该时间是由服务端产生的, 所以可能会和客户端的时间存在着误差。
Cache-Control是http1.1的规范,常见的值主要有private,public,no-cache,max-age,no-store。
private
public
no-cache
max-age
no-store
协商缓存和强制缓存不一样,具体的区分为,协商缓存需要判断改缓存是否可用。 协商缓存都是由服务器来确定缓存资源是否可用的,所以客户端与服务器端要通过某种标识来进行通信,从而让服务器判断请求资源是否可用。 主要涉及到以下四个字段:Last-Modified,If-Modified-Since,Etag,If-None-Match
Last-Modified
If-Modified-Since
Etag
If-None-Match
1.强制缓存的优先级比协商缓存高。 2.Etag和Last-Modified可同时存在,并且优先检测Etag,再检测Last-Modified
The text was updated successfully, but these errors were encountered:
除了强制缓存和协商缓存,最好也需要了解一下缓存位置。 四种位置按照优先级读取:
详见 from disk or from memory
Sorry, something went wrong.
No branches or pull requests
关于缓存
所有的资源都从服务器拉,如果在大量资源的情况下,造成的结果就是可能会造成一个比较长的的等待时间,从优化的角度上来说是不太能忍的_(:з」∠)_,所以为了提高页面的访问速度,在进行资源访问的时候,浏览器会根据资源返回的header头来进行相应的缓存设置。可能采用的是强缓,也可能会采用协商缓存。
强制缓存
返回的header头会包含着一些有关于缓存机制的描述信息,客户端直接根据描述信息进行操作(如果缓存命中则返回200),其中和强制缓存相关的字段为
Expires
和Cache-Control
。这两个字段主要是用来区分缓存的过期时间,具体区别如下:Expires
是http1.0的规范,格式是一个GMT时间格式的字符串,如Sun Jun 03 2018 14:47:26 GMT,是服务器返回的资源到期时间,如果请求的时间在该时间之前则视为有效。但一个隐藏的问题是,该时间是由服务端产生的, 所以可能会和客户端的时间存在着误差。Cache-Control
是http1.1的规范,常见的值主要有private
,public
,no-cache
,max-age
,no-store
。协商缓存
协商缓存和强制缓存不一样,具体的区分为,协商缓存需要判断改缓存是否可用。
协商缓存都是由服务器来确定缓存资源是否可用的,所以客户端与服务器端要通过某种标识来进行通信,从而让服务器判断请求资源是否可用。
主要涉及到以下四个字段:
Last-Modified
,If-Modified-Since
,Etag
,If-None-Match
其他的一些该注意的点
1.强制缓存的优先级比协商缓存高。
2.Etag和Last-Modified可同时存在,并且优先检测Etag,再检测Last-Modified
The text was updated successfully, but these errors were encountered: