URL加载系统

协议支持

原生支持http、https、ftp、file和data几种协议,但是也可以注册自己的类来支持应用层面的自定义协议

工作流

NSURL                   |              | block                | file
NSURLRequest            | NSURLSession | delegate             | NSData
 - NSMutableURLRequest  |              | (with NSURLResponse) |  

NSURLCache:管理NSCachedURLResponse
NSHTTPCookieStorage:管理HSHTTPCookie

特性

  • 可以进行后台下载,即使此时app被挂起或者已终止或者已崩溃了
  • 以每个session为基础进行timeout的设定

注意事项

  • 使用NSMutableURLRequest只是可以在连接发起前可以变更URL request的内容,一旦发起连接,那么request会被进行一个深拷贝,此后再去修改NSMutableURLRequest也是没有任何效果了
  • 服务器的响应分为两块:内容数据和描述内容数据的metadata;而NSURLResponse只存有其中的metadata部分

缓存

  • cache是基于app,是一个硬盘和内存都有的复合存储
  • NSURLCache提供了配置缓存大小和存储位置的方法,同时管理NSCachedURLResponse集合
  • NSCachedURLResponse包含NSURLResponse和content data
  • 默认只有http和https的请求会缓存

你可能感兴趣的:(URL加载系统)