前端面试—强缓存、协商缓存

1,385 阅读3分钟

一、浏览器缓存机制

1. 什么是浏览器缓存机制?

  • 浏览器缓存机制即HTTP缓存机制
  • 浏览器发起一个请求,首先从浏览器缓存中查找是否有请求结果及对应的缓存标志
  • ①对应的请求结果及缓存标志存在且未过期,返回该结果
  • ②对应的请求结果及缓存标志不存在或已过期,则向浏览器发送请求
  • ③浏览器收到请求后处理请求并返回相应的请求结果及缓存标志 注意:①对应强缓存,②③对应协商缓存

2. 浏览器缓存机制用来解决什么样的问题?

  • 客户端
    • 降低资源的重复加载,节省用户流量
    • 加快网页的加载速度,提升用户体验
  • 服务器端
    • 减少服务器的压力,提升网站性能

⭐3. 浏览器缓存机制的分类

  • 分为强缓存和协商缓存
    • 强缓存控制请求头:
      • cache-control(缓存控制)
      • expired(过期时间)
    • 协商缓存控制请求头
      • Etag / If-None-Match
      • Last-Modified / If-Modified-Since
  • 判断
    • 通过请求头来进行判断
  • 强缓存
    • 特点:
      • 不需要向服务器发送请求
      • 对应200状态码
      • 请求的数据是直接从浏览器缓存中匹配到的数据
    • 如何实现
  • 协商缓存
    • 特点:
      • 需要向服务器发送请求
      • 对应304状态码
      • 请求的数据要通过与浏览器协商是否可以使用缓存
    • 如何实现

二、状态码

  • 类别
  • 常用状态码
    • 2XX
      • 200 OK 客户端发送请求在服务器端被成功处理 注意:GET方法:请求资源的实体作为响应返回;HEAD方法:只返回请求头,不返回实体的主体部分
      • 204 No Content 请求成功处理但是响应中不包含实体的主体,页面不发生更新 一般用于只需要客户端向服务器发信息,而不需要服务器回应的情况下
      • 206 Partial 客户端请求部分资源 响应报文中包含由Content-Range指定的范围的内容
    • 3XX
      • 301 Moved Permanently 永久性重定向 请求的资源已经被分配了新的URI且不会再进行改动
      • 302 Found 临时性重定向 本次请求的资源被分配了新的URI,但是以后还由可能会发生改动,禁止请求方法从POST变为GET
      • 303 See Other 临时性重定向 功能与302相同,但是希望客户端采用GET方法请求资源
      • 304 Not Modified 附带条件的请求 服务器允许访问资源,但与客户端发起的请求中携带的条件不匹配,所以不包含任何响应的主体部分
      • 307 Temporary Redirect 临时重定向 功能与302相同,遵照浏览器标准,不会从POST变为GET
    • 4XX
      • 400 Bad Required 请求报文中存在语法错误
      • 401 Unauthorized 发出的请求需要有通过HTTP认证的认证信息 如果之前有进行一次请求,则表示用户认证失败
      • 403 ForBidden 请求被服务器拒绝
      • 404 Not Found 服务器上没有请求的资源
    • 5XX
      • 500 Internal Server Error 服务器执行请求时发生了错误
      • 503 Server Unavailable 服务器暂时处于超负载或正在停机进行维修,现在无法处理请求