前端http【面试回顾】

状态码

  • 1xx 服务器收到请求
  • 2xx 请求成功,如200
  • 3xx 重定向, 如301永久重定向,302临时重定向,304资源未改变
  • 4xx 客户端错误, 如404
  • 5xx 服务端错误, 如500服务器错误 504网关超时
methods
  • get 获取数据
  • post 新建数据
  • patch/put 更新数据
  • delete 删除数据
http headers Request headers
  • Accept 浏览器可接收的数据格式
  • Accept-Encoding 浏览器可接收的压缩算法, 如gzip
  • Accept-Language 浏览器可接收的语言, 如zh-CN
  • Connection: keep-alive 一次TCP连接重复使用
  • cookie
  • Host 域名
  • User-Agent(UA) 浏览器信息
  • Content-type 发送数据的格式, 如application/json
Response Headers
  • Content-type 发送数据的格式, 如application/json
  • Content-length 返回数据的大小, 多少字节
  • Content-Encoding 返回数据的压缩算法,如gzip
  • Set-cookie
缓存相关的headers
  • Cache-Control Expires
  • Last-Modified If-Modified-SInce
  • Etag If-None-Match
http缓存 强制缓存 前端http【面试回顾】
文章图片

  • Cache-Control概念
    • Response Headers中
    • 控制强制缓存的逻辑
    • 例如Cache-Control: max-age = 31536000 (s)
  • Cache-Control的值
    • max-age
    • no-cache(不用强制缓存)
    • no-store(不用缓存)
    • private
    • public
  • Expires
    • 同为控制缓存过期
    • 已被Cache-Control代替
协商缓存(对比缓存) 前端http【面试回顾】
文章图片

  • 服务端缓存策略
  • 服务端判断客户端资源是否和服务端资源一样
  • 一致则返回304, 否则返回200和最新的资源
  • 两种资源标识
    • Last-Modified 资源的最后修改时间
    • Etag 资源的唯一标识(一个字符串,类似指纹)
    • 会优先使用Etag
    • Last-Modified 只能精确到秒级
    • 如果资源被重复生成,而内容不变,则Etag更精确
前端http【面试回顾】
文章图片

三种刷新操作
  • 正常操作: 地址栏输入url, 跳转链接, 前进后退等
    • 强制缓存有效,协商缓存有效
  • 手动刷新, 如F5, 点击刷新按钮
    • 强制缓存失效,协商缓存有效
  • 【前端http【面试回顾】】强制刷新: ctrl + F5
    • 强制缓存失效,协商缓存失效

    推荐阅读