0

如果使用没有其他更改的标准 NSURL 例程,标准标志会阻止 301 重定向被保存/使用吗?像这样的标志:

NSURLRequestUseProtocolCachePolicy
NSURLRequestReloadIgnoringLocalCacheData
NSURLRequestReloadIgnoringLocalAndRemoteCacheData      // Unimplemented
NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData
NSURLRequestReturnCacheDataElseLoad
NSURLRequestReturnCacheDataDontLoad
NSURLRequestReloadRevalidatingCacheData                // Unimplemented

那么,哪些会忽略/阻止使用 301 重定向,哪些会使用 http:// 尊重 301 重定向

还是这些仅用于数据缓存?

4

1 回答 1

0

这就是规范 HTTP 1.1状态代码概述对此事所说的:

6.1。状态码概述

下面列出的状态代码在本规范、[Part4] 的第 4 节、[Part5] 的第 4 节和 [Part7] 的第 3 节中定义。这里列出的原因短语只是建议——它们可以被本地等效替换而不影响协议。

除非方法定义或显式缓存控制另有说明,否则具有默认定义为可缓存的状态代码(例如,本规范中的 200、203、206、300、301 和 410)的响应可以由具有启发式过期的缓存重用【第六部分】;默认情况下,所有其他状态代码均不可缓存。

但是,如果没有进一步调查,我无法确定 iOS NSURLConnection 和 NSURLCache 的实际行为方式。

该选项NSURLRequestUseProtocolCachePolicy——这是默认选项——应该按照上面指定的方式运行。

于 2013-11-04T18:41:31.967 回答