HTTP缓存机制

2020-05-07  本文已影响0人  深度码农患者

在移动互联网时代,为了尽可能的为用户节省流程以及提高用户体验,对HTTP请求设计缓存机制是必不可少的,当前主流缓存策略有以下几种:

  1. NSURLRequestUseProtocolCachePolicy // 默认的缓存策略(取决于协议)
    这个是默认的缓存机制,当系统第一次请求该网络资源的时候,本地缓存中并不存在该资源文件,于是请求了整个资源文件,并且缓存该文件的缓存信息。
    当第二次请求该网络资源的时候,系统会在请求头中添加"if-Modified-Since"字段或者”if-None-Match“字段,将缓存信息携带上去,服务端根据缓存信息判断该资源是否发生了变化,如果没有变化,则返回304。
  2. NSURLRequestReloadIgnoringLocalCacheData
    该策略在每次请求资源时都会忽略本地的缓存内容,去请求最新的资源。
  3. NSURLRequestReloadIgnoringLocalAndRemoteCacheData // 未实现
  4. NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData
    忽略缓存,重新请求
  5. NSURLRequestReturnCacheDataElseLoad
    有缓存就用缓存,没有缓存就重新请求
  6. NSURLRequestReturnCacheDataDontLoad
    该策略有缓存就适应缓存,没有缓存就不发请求,当做请求出错处理。当本地并不存在对应的缓存资源时,回调接口就会报错,错误码-1008
  7. NSURLRequestReloadRevalidatingCacheData // 未实现

iOS 系统使用NSURLCache单例类来管理网络请求的缓存。对于app来说,由于使用了同一个缓存对象来管理缓存,所以不同的网络请求都是使用同一个缓存来管理的。

上一篇 下一篇

猜你喜欢

热点阅读