from: http://blog.sina.com.cn/s/blog_4cd8dd130100t331.html
系统总介绍
URL loading系统是一个类和协议的集合,为应用程序通过url访问数据提供支持
共有五个类别
url loading
cache management
authentication and credentials
cookie storage
protocol support
分别一一介绍
url loading 类
cache management
authentication and credentials
NSURLCredentialStorage
cookie storage
NSHTTPCookie
Protocol support
先说URL loading 类家族吧
通常的使用方法是程序创建一个 url 的内容的request,并根据request从源地址下载
NSURLRequest 对象表示一个url内容的request,并封装一个url和协议任何特定的属性
同时也提供了连接超时的接口,并指定本地缓存数据的规则,它的继承类NSMutableURLRequest允许客户程序修改一个已经存在的request
但是当你的程序已经开始初始化一个connection 或者使用一个NSMutableURLRequest
下载,改变NSMutableURLRequest不会影响到已经开始的下载
一些协议比如http 支持很多的指定的属性,所以创建了NSURLRequest和NSMUtableURLRequest的类别,类别里面提供了对协议特定属性的访问方法(accessors)
举个例子,http协议增加了一些方法访问http协议的request body、headers和转换方法
具体的方法可以查询NSURLProtocol 类说明
一个request服务的的回应包含2个部分,描述内容的元数据(metadata)
和url内容数据,NSURLResponse类封装元数据,比如内容长度、文字的编码等
协议可以创建NSURLResponse类的子类去存储特定的属性,比如NSHTTPURLResponse
存储从web服务返回的headers信息和状态码
注意NSURLReponse只存储元数据metadata,NSCacheURLResponse实例封装
了NSURLResponse、url内容和任何程序提供的信息
NSURLConnection和NSURLDownload类提供了一组接口,可以创建一个NSURLRequest对象对应的连接并下载内容,当一个NSURLConnection对象从源地址下载数据时,可以将数据
传给代理delegate,而NSURLDownload直接写入磁盘。这两个类都提供了大量的delegate
支持,以便应对重新连接、认证、错误条件
NSURLConnection提供了一个delegate方法允许程序控制一个response的缓冲(具体是那个
方法和有什么作用我也不知道,有谁知道吗?)
而NSURLDownlond实例初始化下载的时候没有缓冲