紧接这一篇:
IOS网络篇2之客户端离线缓存策略(NSURLProtocol)
首先我们来看看IOS网络的主要层次结构:
IOS的网络层次结构主要分为以下三个部分:
Cocoa层:NSURL(比较常用的)、NSStream、GameKit、WebKit、ASIHttpRequest(第三方框架)
Core Foundation:CFNetwork/CFNetServices、CFStream、CFSocket
OS:BSD Socket
下面我们再来看看Web Kit NSURL CFNetwork BSDSockets 之间的关系。\
NSStream NSURL 都是基于OC的API。
NSURL 也是以CFNetwork作为基础的:
这里可以看到WebKit是基于NSURL的,因此所有的WebKit NSURL的网络请求都是可以被NSURLProtocol截获的。CFNetwork是基于C的。CFNetWork的基础是CFStream和CFSocket。
CFNetwork架构:
CFNetwork提供了对FTP和HTTP的支持(基于CFStream和CFSocket):
有如下的一些API:
CFFTP API
CFHTTP API
CFHTTPAuthentication API
CFHost API