【问题标题】:Why use Cache-Control header in request?为什么在请求中使用 Cache-Control 标头?
【发布时间】:2017-07-27 22:25:56
【问题描述】:

Cache-Control 上的This page 指定以下内容:

可以在客户端中使用的标准缓存控制指令 HTTP 请求。

我认为只有服务器会发回有关客户端是否应缓存响应的信息。为什么客户端会向服务器发送缓存信息?

【问题讨论】:

    标签: javascript caching cache-control


    【解决方案1】:

    在客户端和服务器之间可能有任意数量的中间代理来进行缓存。客户端可以从任何和所有缓存实体显式请求显式缓存行为,例如:

    • max-age - “我不想要早于 X 的回复”
    • no-cache - “我想要一个新的回应”
    • no-transform - “我不想要它,除非它是原版”
    • only-if-cached - “如果您还没有源服务器,请不要打扰它”

    与所有请求一样,服务器在是否接受请求方面有一定的余地。仅仅因为客户端坚持使用未缓存的响应并不意味着它一定会得到它。

    【讨论】:

    • 说服务器不做任何类型的缓存,但客户端希望这样做是为了提高性能。即使服务器不做任何事情,客户端是否可以请求浏览器缓存 HTTP 调用?
    • 无店铺怎么办?
    • 一个不满足客户端请求的示例是 CloudFlare 缓存,它会忽略您以避免 DoS 攻击,如此处所述community.cloudflare.com/t/…
    猜你喜欢
    • 1970-01-01
    • 2013-01-10
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 2018-11-22
    • 2017-09-11
    相关资源
    最近更新 更多