iOS网络编程一

一、 iOS网络框架

iOS网络框架分为四层,第一层为Cocoa层,包含了常用的网络API,如NSURLConnection、NSURLSession;第二层为Core-Foundation层,由C编写,包括CFNetwork,里面的相关接口是上层API的基础;第三层为OS层,主要由BSD构成;第四层为硬件层,包括WIFI、蓝牙等。

二、iOS网络相关API
1.NSURLConnection

NSURLConnection 作为 Core Foundation / CFNetwork 框架的 API 之上的一个抽象,在 2003 年,随着第一版的 Safari 的发布就发布了。NSURLConnection 这个名字,实际上是指代的 Foundation 框架的 URL 加载系统中一系列有关联的组件:NSURLRequest、NSURLResponse、NSURLProtocol、 NSURLCache、 NSHTTPCookieStorage、NSURLCredentialStorage 以及同名类 NSURLConnection。

2.NSURLSession

在 2013 的 WWDC 上,苹果推出了 NSURLConnection 的继任者:NSURLSession。与 NSURLConnection 相比,NSURLsession 最直接的改进就是可以配置每个session的缓存,协议,cookie,以及证书策略(credential policy),甚至跨程序共享这些信息。这将允许程序和网络基础框架之间相互独立,不会发生干扰。

3.WebKit

在iOS8之前,在应用中嵌入网页通常需要使用UIWebView这样一个类,这个类通过URL或者HTML文件来加载网页视图,功能十分有限,只能作为辅助嵌入原生应用程序中。在iOS 8之后,Apple提供了WebKit框架,使用WKWebView替换了原来UIKit中的UIWebView。

4.Bonjour

Bonjour是Apple对零配置网络的实现。它提供一种机制,可以检测网络中的设备或服务进行连接,同时无须知道设备的网络地址。比较常用于智能家居方面,比如现在的苹果投屏。

5.NSStream

NSStream是Cocoa级别的API,构建在CFNetwork之上,它通过NSStreamDelegate协议来实现CFNetwork中的回调函数。

6.CFNetwork

CFNetwork位于基础的BSD Socket之上,它为HTTP和FTP等高级协议提供了原生的支持。对比其NSURLConnection和NSURLSession,它可以控制一些更底层的东西。

6.BSD socket

BSD socket构成了大多数网络活动的基础,是网络框架层次体系中的最底层。一般不推荐使用BSD socket相关API,因为它没有在操作系统中插入任何钩子。

三、总结

本小节主要描述了iOS网络框架,并自顶而下地说明了各个部分的作用和联系。

参考资料

转载于:https://juejin.im/post/5c863018f265da2dd052799d

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值