9

我目前正在尝试了解 304/未修改究竟如何符合 3xx 范围类的 HTTP 状态代码。RFC 1945,秒。9.3RFC 2616,秒。10.3都写着:

此类状态码表明用户代理需要采取进一步的行动才能满足请求。

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

4

2 回答 2

8

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

有几种类型的重定向:

  1. 指示资源可能在不同 URI 上可用的重定向,由 Location 字段提供,如状态代码 301(永久移动)、302(找到)和 307(临时重定向)。

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

  3. 重定向到由 Location 字段标识的不同资源,该资源可以表示对请求的间接响应,如 303(参见其他)状态代码。

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

于 2014-05-14T06:44:00.107 回答
3

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

于 2014-05-14T06:44:53.200 回答