【问题标题】:What data is cached by web proxy server(or other http caches)?Web 代理服务器(或其他 http 缓存)缓存了哪些数据?
【发布时间】:2017-02-06 15:33:57
【问题描述】:

我对代理服务器(或其他 http 缓存)是否缓存客户端请求的 URI、方法、标头和正文特别感兴趣?还是只有 URI 和 Method?

原因是我对负缓存感到困惑,例如缓存响应为 400 状态码(“错误请求”)。我的意思是,如果第一个响应具有导致 400 错误的“无效”正文并且我们缓存它是否意味着具有“有效”正文的后续请求仍会从缓存中获得 400 响应? (甚至没有访问源服务器?

【问题讨论】:

  • 由服务器确定响应是否可缓存,并带有 Cache-Control 和/或 Expires 标头。如果有请求正文,它不应该是 GET 请求,我希望许多缓存不会缓存 POST,因为这需要存储请求正文。
  • @Adrien,感谢您的评论!你是对的,在 PUT、POST 和 DELETE 方法上,缓存将失效 - stackoverflow.com/a/626083/4685486

标签: rest http caching http-proxy


【解决方案1】:

GET 请求是可以被中间缓存缓存的请求。 如书中"HTTP: The definitive guide" 所示,只有 URL 和标头会被缓存。

PUT、POST 和 DELETE 请求将导致缓存失效,如 here 所示。

所以我最初的问题(大约 400 个响应,因为无效的正文)是错误的,因为根据 REST 和其他方法(可能有正文),GET 请求不应该有正文导致缓存无效。

感谢@Adrien 指点它!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    • 2019-04-01
    • 2016-06-13
    • 2020-02-25
    • 1970-01-01
    • 2011-07-27
    相关资源
    最近更新 更多