第Ⅰ部分 理解iOS与企业网络 3
第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网络功能 27
第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 HTTPAPI 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
第Ⅲ部分 高级网络技术 115
第6章 保护网络传输 115
6.1 验证服务器通信 116
6.2 HTTP认证 120
6.2.1 HTTPBasic、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
第Ⅳ部分 应用间网络通信 235
第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