为什么304状态代码算作“重定向?”

时间:2014-05-14 06:22:28

标签: http http-status-codes http-redirect http-status-code-304

我目前正在尝试了解304 / Not修改的确切条件是否符合3xx范围的HTTP状态代码类。 RFC 1945, sec. 9.3RFC 2616, sec. 10.3均为:

  

此类状态代码表示用户代理需要采取进一步操作才能完成请求。

虽然“从客户端的本地缓存加载”显然是“进一步的操作”,但我很难看到这是HTTP的意义上的重定向。我是字面意思地读这个吗?

2 个答案:

答案 0 :(得分:7)

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

有几种类型的重定向:

  1. 指示资源可能位于不同URI的重定向,如“位置”字段所提供的,如状态代码301(永久移动),302(找到)和307(临时重定向)。 / p>

  2. 重定向,提供匹配资源选择,每个资源都能够表示原始请求目标,如300(多项选择)状态代码中所示。

  3. 重定向到由“位置”字段标识的其他资源,该资源可以表示对请求的间接响应,如303(请参阅其他)状态代码中所示。

  4. 重定向到之前缓存的结果,如304(未修改)状态代码。

答案 1 :(得分:3)

我想这是因为服务器“重定向”客户端以从其本地缓存加载所请求的资源,而不是从服务器下载它。如果客户端没有本地缓存​​副本,则它不应该首先发送条件请求。