* WGs marked with an * asterisk has had at least one new draft made available during the last 5 days

Ticket #432 (closed design: fixed)

Opened 19 months ago

Last modified 10 months ago

Review Cachability of Status Codes WRT "Negative Caching"

Reported by: mnot@pobox.com Owned by:
Priority: normal Milestone: 22
Component: p6-cache Severity: In IETF LC
Keywords: Cc:
Origin: #223

Description

Currently, the following status codes are defined as cacheable -- that is, able to be stored without any explicit freshness information:

  • 200 (OK)
  • 203 (Non-Authoritative Information)
  • 206 (Partial Content)
  • 300 (Multiple Choices)
  • 301 (Moved Permanently)
  • 410 (Gone)

However, many caches store other status codes (often called "Negative Caching")

For example, both Squid and Traffic Server (which have considerable market share, and form the basis of many other implementations) negatively cache the following status codes:

  • 204 (No Content)
  • 400 (Bad Request)
  • 403 (Forbidden)
  • 404 (Not Found)
  • 405 (Method Not Allowed)
  • 414 (Request URI Too Long)
  • 500 (Internal Server Error)
  • 501 (Not Implemented)
  • 502 (Bad Gateway)
  • 503 (Service Unavailable)
  • 504 (Gateway Timeout)

While some of these may be bad to cache by default (in particular, 400 and 500), others may make sense: for example, 204 seems straightforward, and 404 seems high-value.

The major concern here is making semantic changes to the protocol.

Change History

comment:1 Changed 19 months ago by mnot@pobox.com

From [2187]:

Identify additional status codes as cacheable; see #432.

comment:2 Changed 19 months ago by mnot@pobox.com

  • Status changed from new to closed
  • Resolution set to incorporated
  • Milestone changed from unassigned to 22

comment:3 Changed 16 months ago by mnot@pobox.com

  • Status changed from closed to reopened
  • Resolution incorporated deleted

comment:4 Changed 16 months ago by mnot@pobox.com

  • Status changed from reopened to closed
  • Resolution set to fixed

comment:5 Changed 10 months ago by mnot@pobox.com

  • Status changed from closed to reopened
  • Resolution fixed deleted

As per http://www.w3.org/mid/5266FC98.3080403@bbs.darktech.org this needs to be integrated into p2 6.1 (overview of status codes) as well.

comment:6 Changed 10 months ago by mnot@pobox.com

  • Severity changed from In WG Last Call to In IETF LC

comment:7 Changed 10 months ago by mnot@pobox.com

  • Status changed from reopened to closed
  • Resolution set to fixed

Fixed in [2482]:

correct list of cacheable-by-default status codes, explicitly call them "cacheable by default"; fixes #432

comment:8 Changed 10 months ago by fielding@gbiv.com

From [2487]:

206 is also cacheable by default, so be consistent with [2482] to say that; see #432

Note: See TracTickets for help on using tickets.