如果您对资源进行GET
请求,那么获取 Not Modified 响应以避免不必要的流量就非常有意义。
问题是为什么返回码是304
?这意味着它是一个重定向响应。在这种情况下,预期的重定向位置是什么?
我希望它在2xx
范围内,因为它是成功请求,且答案有效。
请参见RFC。
答案 0 :(得分:5)
请不要再使用旧的和过时的RFC 2616作为参考。它完全被一起定义HTTP协议的RFC 7230-35所取代。
如RFC 7231所述,重定向有几种类型,其中一种是隐式重定向到缓存的资源,如状态304
所示(重点是我的):
状态代码的
3xx
(重定向)类指示 用户代理需要采取行动才能完成 请求。 [...]有几种重定向类型:
重定向,指示资源可能在以下位置可用 由
Location
字段提供的不同URI,如 状态代码301
(已永久移动),302
(已找到)和307
(临时重定向)。重定向,提供各种匹配资源的选择 能够代表原始请求目标,如
300
(多项选择)状态代码。重定向到由
Location
标识的其他资源 字段,它可以表示对请求的间接响应,例如 在303
(请参阅其他)状态代码中。重定向到先前缓存的结果,如
304
(不是 已修改)状态代码。
状态
304
(未修改)表示有条件的GET
或HEAD
的请求已收到,可能会导致200
(OK)如果不是因为条件 评估为假。换句话说,不需要服务器 转移目标资源的表示形式,因为 request指示发出请求的客户端 有条件的,已经具有有效的表示形式;服务器是 因此,重定向客户端以使用存储的客户端 表示为200
(确定)响应的有效载荷。
答案 1 :(得分:1)
它正在重定向到缓存中存储的数据的副本。