我目前正在尝试了解304 / Not修改的确切条件是否符合3xx范围的HTTP状态代码类。 RFC 1945, sec. 9.3和RFC 2616, sec. 10.3均为:
此类状态代码表示用户代理需要采取进一步操作才能完成请求。
虽然“从客户端的本地缓存加载”显然是“进一步的操作”,但我很难看到这是HTTP的意义上的重定向。我是字面意思地读这个吗?
答案 0 :(得分:7)
请参阅http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p2-semantics-26.html#rfc.section.6.4.p.2:
有几种类型的重定向:
指示资源可能位于不同URI的重定向,如“位置”字段所提供的,如状态代码301(永久移动),302(找到)和307(临时重定向)。 / p>
重定向,提供匹配资源选择,每个资源都能够表示原始请求目标,如300(多项选择)状态代码中所示。
重定向到由“位置”字段标识的其他资源,该资源可以表示对请求的间接响应,如303(请参阅其他)状态代码中所示。
重定向到之前缓存的结果,如304(未修改)状态代码。
答案 1 :(得分:3)
我想这是因为服务器“重定向”客户端以从其本地缓存加载所请求的资源,而不是从服务器下载它。如果客户端没有本地缓存副本,则它不应该首先发送条件请求。