请求

1、把请求头包含在NSURLRequest中,//NSURLRequest 不可变,不能动态的添加请求头信息,NSMutableURLRequest可变,动态添加请求头信息。

2、构造NSURLRequest参数:url、缓存策略、超时时间(放弃请求)

3、构造NSURLSessionTask参数:data 返回的数据、response 响应头、error 错误信息



1、url loading

NSURLSession与NSURLConnection

NSURLRequest----NSMutableURLRequest

NSURLResponse——-NSHTTPURLResponse

*获取数据到内存

*以文件形式下载数据

2、URL加载系统本身支持http,https,文件,ftp和数据协议。c

在老版本中,使用NSURLConnection去下载URL中的内容到内存中(可以写数据到disk磁盘)。

在iOS 7之后,NSURLSession更适合URL requests

&*获取数据到内存

1、简单的请求,直接使用NSURLSession从NSURL对象检索内容,无论是NSData对象还是一个磁盘文件.

2、复杂的请求,比如上传数据,使用NSURLSession或者NSURLConnection来加载一个NSURLRequest,或者其子类NSMutableURLRequest.

1、完成处理的block.当加载URL的类从服务器接收完数据后会调用这个block.

2、自定义的delegate

(----------除了数据本身,the URL loading class还提供了与请求相关的封装元数据    -------- the MIME type and content length.)

&*以文件形式下载数据

1、简单的请求,直接使用NSURLSession从NSURL对象检索内容,无论是NSData对象还是一个磁盘文件.

2、复杂的请求,使用NSURLSession加载一个NSURLRequest,或者其子类NSMutableURLRequest。

(-------------NSURLSession:即使是当应用程序当挂起,退出,闪退时,依然能在后台进行数据下载

(-------------通过NSURLDownload或者NSURLSession进行的下载是没有缓存的。

(--------------如果需要缓存下载结果,必须使用NSURLConnection或者NSURLSession,并且由开发者自己将数据写入磁盘

一个NSURLRequest对象封装了(一个URL、相应的协议信息,指定了本地缓存策略)

------NSURLConnection的超时时间

------NSURLSession的超时时间-------per-session basis

一个NSHTTPURLResponse存储了服务器返回的响应头和状态码(the headers and the status code)

Authentication and Credentials---

-- NSURLCredential 封装了包含验证信息的凭证、永久性行为

-- NSURLProtectionSpace代表了一块需要特定凭证的区域

--NSURLCredentialStorage管理凭证存储、提供NSURLCredential到相应的 NSURLProtectionSpace 的映射

-- NSURLAuthenticationChallenge用于 NSURLProtocol的子类通知系统那些凭证是需要的

---一些服务器会限制访问权限(提供相应的认证信息)Credentials

---your app可以使用Credentials去决定,是否信任服务器

cookies -------URL loading system提供相关接口去(创建、管理、发送、接收cookies)

----NSHTTPCookieStorage提供接口管理NSHTTPCookie对象的集合

cache---------存储在每一个app的 basis中

--cache由NSURLConnection根据NSURLRequest对象的cache policy 查询

-- NSURLCache 提供方法去配置cache的大小、存储位置、管理NSCachedURLResponse 对象的集合

你可能感兴趣的:(请求)