Why does the 304 status code count as a "redirect?"

DaSourcerer picture DaSourcerer · May 14, 2014 · Viewed 13.6k times · Source

I am currently trying to understand how exactly 304/Not modified qualifies for the 3xx-range class of HTTP status codes. RFC 1945, sec. 9.3 and RFC 2616, sec. 10.3 both read:

This class of status code indicates that further action needs to be taken by the user agent in order to fulfill the request.

While "loading from the client's local cache" clearly is a "further action," I am struggling to see how this is a redirect in the sense of HTTP. Am I reading this too literally?

Answer

Julian Reschke picture Julian Reschke · May 14, 2014

See http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p2-semantics-26.html#rfc.section.6.4.p.2:

There are several types of redirects:

  1. Redirects that indicate the resource might be available at a different URI, as provided by the Location field, as in the status codes 301 (Moved Permanently), 302 (Found), and 307 (Temporary Redirect).

  2. Redirection that offers a choice of matching resources, each capable of representing the original request target, as in the 300 (Multiple Choices) status code.

  3. Redirection to a different resource, identified by the Location field, that can represent an indirect response to the request, as in the 303 (See Other) status code.

  4. Redirection to a previously cached result, as in the 304 (Not Modified) status code.