Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#432 closed design (fixed)

Review Cachability of Status Codes WRT "Negative Caching"

Reported by: mnot@… Owned by:
Priority: normal Milestone: 22
Component: p6-cache Severity: In IETF LC
Keywords: Cc:

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 (8)

comment:1 Changed 6 years ago by mnot@…

From [2187]:

Identify additional status codes as cacheable; see #432.

comment:2 Changed 6 years ago by mnot@…

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

comment:3 Changed 6 years ago by mnot@…

  • Resolution incorporated deleted
  • Status changed from closed to reopened

comment:4 Changed 6 years ago by mnot@…

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

comment:5 Changed 6 years ago by mnot@…

  • Resolution fixed deleted
  • Status changed from closed to reopened

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 6 years ago by mnot@…

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

comment:7 Changed 6 years ago by mnot@…

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

Fixed in [2482]:

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

comment:8 Changed 6 years ago by fielding@…

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.