书名:iOS网络高级编程:iPhone和iPad的企业应用开发
作者:考克斯等
出版日期:2018
ISBN:
iOS网络高级编程:iPhone和iPad的企业应用开发
iPhone SDK(现在称为iOS)的发布引发为iPhone创建应用的热潮。为了将iOS应用开发推向新高度,本书作者通过各种有效的方法、鲜活的示例与最佳实践实现了iOS应用与其他系统(如网络主机或其他移动设备)的无缝连接。无论是新手还是经验丰富的开发人员,都会从作者解决网络系统集成、安全与设备管理的方式中获益无穷,从而可以构建更棒、更可靠的应用。

目 录

第Ⅰ部分 理解iOS与企业网络

第1章 iOS网络功能介绍 3

1.1 理解网络框架 3

1.2 iOS网络API 4

1.2.1 NSURLConnection 4

1.2.2 Game Kit 5

1.2.3 Bonjour 5

1.2.4 NSStream 5

1.2.5 CFNetwork 6

1.2.6 BSD socket 6

1.3 运行循环 6

1.4 小结 8

第2章 设计服务架构 9

2.1 远程门面模式 10

2.1.1 门面服务示例 12

2.1.2 门面客户端示例 14

2.2 服务版本化 17

2.2.1 版本化服务示例 18

2.2.2 使用版本化服务的客户端示例 18

2.3 服务定位器 20

2.4 小结 24

第Ⅱ部分 HTTP请求:iOS网络功能

第3章 构建请求 27

3.1 HTTP介绍 28

3.2 理解HTTP请求与响应 29

3.2.1 URL结构 30

3.2.2 请求内容 31

3.2.3 响应内容 33

3.3 高层iOS HTTP API 34

3.3.1 所有请求类型共用的对象 34

3.3.2 同步请求 38

3.3.3 队列式异步请求 41

3.3.4 异步请求 43

3.4 高级HTTP操作 51

3.4.1 使用请求方法 51

3.4.2 操纵Cookie 53

3.4.3 头信息操作进阶 58

3.5 小结 61

第4章 生成与解析负载 63

4.1 Web Service协议与风格 64

4.1.1 简单对象访问协议 64

4.1.2 表述性状态转移 65

4.1.3 选择一种方式 66

4.2 负载 67

4.2.1 负载数据格式简介 67

4.2.2 解析响应负载 70

4.2.3 生成请求负载 83

4.3 小结 90

第5章 错误处理 91

5.1 理解错误源 91

5.1.1 操作系统错误 93

5.1.2 HTTP错误 98

5.1.3 应用错误 99

5.2 错误处理的经验法则 101

5.2.1 在接口契约中处理错误 101

5.2.2 错误状态可能不正确 101

5.2.3 验证负载 101

5.2.4 分离错误与正常的业务状况 102

5.2.5 总是检查HTTP状态 102

5.2.6 总是检查NSError值 102

5.2.7 使用一致的方法来处理错误 102

5.2.8 总是设置超时时间 102

5.3 优雅地处理网络错误 102

5.3.1 设计模式介绍 103

5.3.2 指挥调度模式示例 107

5.4 小结 112

第Ⅲ部分 高级网络技术

第6章 保护网络传输 115

6.1 验证服务器通信 116

6.2 HTTP认证 120

6.2.1 HTTP Basic、HTTP Digest与NTLM认证 120

6.2.2 客户端证书认证 122

6.3 使用哈希与加密确保消息完整性 126

6.3.1 哈希 127

6.3.2 消息认证码 130

6.3.3 加密 134

6.4 在设备上安全地存储认证信息 145

6.5 小结 148

第7章 优化请求性能 149

7.1 度量网络性能 149

7.1.1 网络带宽 150

7.1.2 网络延迟 151

7.1.3 设备电量 152

7.2 优化网络操作 153

7.2.1 减少请求带宽 153

7.2.2 降低请求延迟 159

7.2.3 避免网络请求 160

7.3 小结 163

第8章 底层网络 165

8.1 BSD Socket 165

8.1.1 配置Socket服务器 167

8.1.2 Socket客户端连接 167

8.2 CFNetwork 172

8.3 NSStream 176

8.4 小结 180

第9章 测试与操纵网络流量 181

9.1 观测网络流量 182

9.1.1 嗅探硬件 182

9.1.2 嗅探软件 183

9.2 操纵网络流量 190

9.2.1 配置Charles 192

9.2.2 HTTP断点 194

9.2.3 重写规则 196

9.3 模拟实际的网络状况 198

9.4 小结 200

第10章 使用推送通知 201

10.1 调度本地通知 202

10.1.1 创建本地通知 202

10.1.2 取消本地通知 205

10.1.3 处理本地通知的到达 207

10.2 注册并响应远程通知 210

10.2.1 配置远程通知 211

10.2.2 注册远程通知 217

10.2.3 远程通知负载 222

10.2.4 发送远程通知 223

10.2.5 响应远程通知 227

10.3 理解通知最佳实践 231

10.4 小结 232

第Ⅳ部分 应用间网络通信

第11章 应用间通信 235

11.1 URL方案 235

11.1.1 实现自定义的URL方案 236

11.1.2 感知其他应用的存在 239

11.1.3 高级通信 240

11.2 共享钥匙串 244

11.2.1 企业SSO 244

11.2.2 检测应用之前的安装 250

11.3 小结 252

第12章 使用Game Kit实现设备间通信 253

12.1 Game Kit基础 254

12.2 点对点网络 257

12.2.1 连接到会话 257

12.2.2 向端点发送数据 260

12.3 客户端-服务器通信 264

12.4 小结 266

第13章 使用Bonjour实现自组织网络 267

13.1 zeroconf概览 268

13.1.1 寻址 268

13.1.2 解析 268

13.1.3 探测 269

13.2 Bonjour概览 270

13.2.1 发布服务 270

13.2.2 浏览服务 275

13.2.3 解析服务 278

13.2.4 与服务进行通信 280

13.3 实现基于Bonjour的应用 284

13.3.1 员工应用 285

13.3.2 顾客应用 293

13.4 小结 302


阅读全文