ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

前端面试每日一题

2022-06-06 20:34:38  阅读:249  来源: 互联网

标签:缓存 浏览器 请求 前端 cache modified 面试 last 每日


2022.6.6

缓存的相关知识

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

  • service worker
  • memory cacahe
  • disk cache
  • push cache

强缓存(响应头部)

强缓存:不会向服务发送请求,直接从缓存中读取资源.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和新的响应体

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

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

  • 打开网页,地址栏输入地址:查找disk cache是否有匹配:有就使用,没有有发送网络请求
  • f5,tab没有关闭,memory cache可用,优先使用,其次是disk cache
  • ctrl+f5,浏览器不使用缓存,请求头部添加cache-control:no-cache,Pragma:no-cache(兼容)

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有