缓存的作用
- 减少了冗余的数据传输,节省了网费
- 减少了服务器的负担,大大提高了网站的性能
第一次请求
浏览器请求——>无缓存——>向web服务器请求——请求响应,缓存协商——>呈现
第二次请求
浏览器请求——>有缓存——>是否过期?
通过最后修改时间来 判断缓存是否可用
- Last-Modified:响应时 告诉客户端此资源的最后修改时间
- If-Modified-Since:当资源过期时(使用Cache-Control标识的max-age),发现具有Last-Modified声明,则再次向服务器请求时带上头If-Modified-Since
- 服务器收到请求后发现有头If-Modified-Since则与被请求资源的 最后修改时间进行比对。若最后修改时间较新,说明资源又被改动过,则响应最新的资源内容并返回200状态码
- 若最后修改时间和If-Modified-Since一样说明资源没有修改,则响应304表示未更新,告之浏览器继续使用所保存的缓存文件
最后修改时间存在问题
- 某些服务器不能精确得到文件的最后修改时间