weijiyang / GOOD-IDEA

这里记录一些灵感~详见ISSUES
1 stars 0 forks source link

缓存相关内容 #47

Open weijiyang opened 4 years ago

weijiyang commented 4 years ago

强缓存

  1. HTTP 1.0 Expires字段传输一个服务器过期时间(但是服务器时间可能会与浏览器不相同!)
  2. HTTP 1.1 Cache-Control(无具体过期时间点而是生效时间长度) 包括以下字段
    • max-age(生效时间)
    • public(中间会有代理服务器的情况、服务端&客户端)
    • private(只客户端存储)
    • no-cache (跳过强缓存 直接进入协商缓存阶段)
    • no-store(不缓存)
    • s-maxage(代理服务器的生效时间)

      Expires Cache-Control同时存在 Cache-Control优先级会更高

协商缓存

  1. Last-Modified

    第一次浏览器向服务端发送请求 响应体会带上 If-Modified-Since信息也就是缓存最后的修改时间 然后每次请求都携带If-Modified-Since字段 判断是否修改 无修改返回304使用缓存 有修改与普通请求相同

  2. Etag

    对每次请求文件生成一个唯一tag值 通过 If-None-Match 字段来携带tag值比对 无修改返回304使用缓存 有修改与普通请求相同

两者对比

weijiyang commented 4 years ago

缓存相关内容

weijiyang commented 4 years ago

image