【问题标题】:What is the default proxy behavior for HTTP cachesHTTP 缓存的默认代理行为是什么
【发布时间】:2012-10-31 15:28:04
【问题描述】:

我们构建了一个发送给客户的服务器。我们希望服务器在存在中间代理的情况下工作。我们不希望代理缓存我们的请求。

现在,我们的一个 servlet 使用以下 HTTP 标头显式禁用缓存:

Expires: Wed, 31 Dec 1969 17:00:00 MST

我们的其他 servlet 没有指定任何与缓存相关的 HTTP 标头。我的问题是我们是否应该更改那些其他 servlet 也专门禁用缓存。特别是,当没有缓存头时,代理服务器会做什么?

【问题讨论】:

  • 您是说您的服务器在关闭缓存的情况下提供所有服务?即使是静态资源,如图像、CSS 和 JavaScript 文件?这对于性能来说似乎是一个非常糟糕的主意! (你不需要缓存报告,但静态的东西肯定应该缓存!)
  • 服务器没有任何静态内容。它为远程客户端提供 XML/JSON。例如,仅提供天气信息的后端天气服务器。

标签: http proxy


【解决方案1】:

(a) 如果您不提供缓存提示(例如 Cache-Control: no-cache -- http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p6-cache-21.html#cache-response-directive.no-cache),代理可以启发式缓存。

(b) Expires 标头字段示例中的日期无效:它可能没有任何效果。

【讨论】:

    猜你喜欢
    • 2017-08-20
    • 1970-01-01
    • 2012-05-17
    • 2010-10-18
    • 1970-01-01
    • 2012-02-13
    • 1970-01-01
    • 2017-04-17
    • 2013-11-29
    相关资源
    最近更新 更多