<html>
    <head>
      <base href="https://bugs.webkit.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - HTTP Cache: Status Codes"
   href="https://bugs.webkit.org/show_bug.cgi?id=170716">170716</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>HTTP Cache: Status Codes
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>WebKit
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>Safari Technology Preview
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>Normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P2
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>New Bugs
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>webkit-unassigned&#64;lists.webkit.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>mnot&#64;mnot.net
          </td>
        </tr></table>
      <p>
        <div>
        <pre>In HTTP, the status code doesn't have much impact on caching. Specifically, if a response has an explicit freshness lifetime and there aren't any other conditions preventing caching (e.g., method, other cache directives in the request or response), the status code doesn't matter.

Spec:
  <a href="http://httpwg.org/specs/rfc7234.html#caching.overview">http://httpwg.org/specs/rfc7234.html#caching.overview</a>

Allowing new status codes to be cached is important; it allows new extensions to be deployed without updating existing cache implementations.

In testing, Safari TP appears to cache some status codes, but does not cache unknown status codes (e.g., 299, 499, 599), nor does it cache 5xx-series status codes (e.g., 500, 502, 503, 504).

Chrome caches all of these status codes when they have explicit freshness information.

Tests:
  <a href="http://w3c-test.org/fetch/http-cache/status.html">http://w3c-test.org/fetch/http-cache/status.html</a></pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>