其他分享
首页 > 其他分享> > 前端面试每日一题

前端面试每日一题

作者:互联网

2022.6.6

缓存的相关知识

参考资料:https://www.sohu.com/a/308053037_115128 / HTTP权威指南
一个数据请求分为网络请求、后端处理、浏览器响应三个步骤。
缓存位置

强缓存(响应头部)

强缓存:不会向服务发送请求,直接从缓存中读取资源.200状态码,size from disk cache或memory cache,强缓存可以设置Expires和Cache-Control

  1. Expires
    HTTP/1.0,使用绝对时间
    缓存过期时间,用来指定资源到期时间和Last-modified结合使用
    Expires: Fri, 05 Jul 2002, 05:00:00 GMT
  2. Cache-Control
    HTTP/1.1使用相对时间
    Cache-Control: max-age=69(s)

协商缓存

if-modified-since和last-modifie

  1. 浏览器第一次访问资源,服务器返回资源的同时,在response添加last-modified
  2. 浏览器下一次请求这个资源,浏览器检测到last-modified这个header,添加if-modified-since这个header,值是last-modified中的值。服务器收到资源请求会和last-modified进行比较,if-modified-since日期last-modified于相同。返回304和空的响应体。否则返回新的资源文件和200
    问题:
    1.以秒计时,在1秒内修改了内容不会被感知到
    2.内容修改了但是修改的内容不重要
    3.数据周期性的重写,数据相同
    if-none-match和etag
    1.浏览器第一次访问资源,服务器返回一个etag
    2.浏览器第二次访问协调if-none-match:添加个tag和数据进行比较,相同就返回304和空的响应体,不同就返回200和新的响应体

强缓存优先于协商缓存进行,若强缓存生效则直接使用缓存,不生效则进行协商缓存,协商缓存由服务器决定是否使用缓存。

用户行为对浏览器缓存的影响

标签:缓存,浏览器,请求,前端,cache,modified,面试,last,每日
来源: https://www.cnblogs.com/gzeal/p/16349558.html