- 中国铁道出版社
- 9787113318260
- 1版
- 572118
- 16开
- 2025-09
- 工学
- 计算机类
- 计算机类
- 本科
作者简介
内容简介
本书是一本全面的Python网络编程指南,以浅显易懂的语言解释复杂概念,并通过大量实例帮助读者掌握实际编程技能,旨在为读者提供从基础到高级的网络编程知识。全书共分为12章,内容涵盖网络编程基础、TCP/IP编程、DNS和网络服务发现、安全通信网络、数据序列化和压缩、异步编程和协程、网络应用架构、Web应用开发、HTTP客户端和API设计、电子邮件处理、网络自动化基础以及实验项目。每章最后附有小结和思考与练习,帮助巩固所学知识,为读者提供一个完整而系统的学习路径。本书既可作为高等院校计算机及相关专业的教材,也可作为职业教育培训用书和Python网络编程初学者的入门读本。
目录
第1章网络编程基础1
1.1网络编程的应用2
1.2网络协议栈概述3
1.2.1OSI模型与TCP/IP模型3
1.2.2协议栈各层的功能和协议4
1.2.3网络接口和硬件抽象5
1.3应用层协议简介6
1.3.1协议的角色和服务模型6
1.3.2常见的应用层协议8
1.4网络编程库和工具10
1.4.1Python标准库中的网络模块10
1.4.2第三方网络编程库11
1.4.3网络调试和分析工具11
1.5网络会话的建立和管理12
1.5.1会话层的作用12
1.5.2会话的生命周期13
1.5.3会话状态管理15
1.6数据编码与解码17
1.6.1文本编码17
1.6.2二进制数据编码19
1.6.3序列化协议20
1.7IP地址和端口22
1.7.1IPv4与IPv6的区别22
1.7.2端口的作用和常见端口号24
1.7.3子网划分和网络地址转换25
1.8路由和数据包传输26
1.8.1路由器和交换机的作用26
1.8.2路由协议28
1.8.3数据包分片和重组29
1.9网络层协议深入30
1.9.1ICMP和网络诊断30
1.9.2ARP和MAC地址解析32
1.9.3VPN和隧道协议33
小结34
思考与练习135
第2章TCP/IP编程37
2.1TCP和UDP概述38
2.1.1TCP的特点和用途38
2.1.2UDP的特点和用途40
2.2套接字编程基础41
2.2.1创建和使用TCP套接字41
2.2.2创建和使用UDP套接字43
2.2.3套接字编程的常见错误45
2.3TCP客户端和服务器模型46
2.3.1构建TCP客户端46
2.3.2构建TCP服务器48
2.3.3处理并发连接50
2.4UDP通信模式55
2.4.1UDP客户端和服务器的交互55
2.4.2UDP广播和组播57
2.4.3UDP的可靠性增强技术60
2.5套接字选项和高级特性62
2.5.1套接字选项配置62
2.5.2套接字超时和非阻塞模式63
2.5.3Nagle算法和TCP_NODELAY选项及其使用场景65
2.6异常处理和超时66
2.6.1网络错误分类66
2.6.2异常处理机制67
2.6.3超时和重试策略68
小结70
思考与练习271
第3章DNS和网络服务发现74
3.1域名系统基础75
3.1.1DNS的工作原理75
3.1.2域名解析过程76
3.1.3DNS记录类型77
3.2使用getaddrinfo()函数和DNS解析78
3.2.1getaddrinfo()函数的使用79
3.2.2解析主机名和服务名80
3.2.3处理DNS解析异常81
3.3服务发现机制82
3.3.1服务注册和发现的概念82
3.3.2使用服务发现的场景83
3.3.3服务发现协议和工具84
3.3.4使用服务发现工具的最佳
实践85
小结85
思考与练习386
第4章网络通信安全88
4.1TLS/SSL基础89
4.1.1加密和解密基础89
4.1.2TLS/SSL协议概述90
4.1.3数字证书和信任链93
4.2证书和密钥管理95
4.2.1证书颁发机构和自签名证书95
4.2.2证书格式和工具97
4.2.3密钥生成和管理98
4.3加密算法和安全最佳实践100
4.3.1对称加密与非对称加密100
4.3.2哈希函数和数字签名102
4.3.3安全配置和弱点避免104
4.4Python中的TLS/SSL应用105
4.4.1ssl模块的使用105
4.4.2安全套接字的创建和配置106
4.4.3与HTTPS服务的交互108
小结110
思考与练习4111
第5章数据序列化和压缩114
5.1字符串和字节数据115
5.1.1Python中的字符串和字节类型115
5.1.2编码转换和兼容性116
5.1.3字节序和网络字节顺序117
5.2数据封装和帧结构118
5.2.1数据帧的概念和结构118
5.2.2封装和解封装数119
5.2.3帧同步和错误检测121
5.3序列化格式:JSON、XML、Protobuf122
5.3.1JSON的使用和特点122
5.3.2XML的使用和特点123
5.3.3Protobuf的使用和特点125
5.4数据压缩技术126
5.4.1压缩算法概述126
5.4.2Python中的压缩库128
5.4.3压缩数据的网络传输129
5.5错误处理和异常131
5.5.1网络异常分类和错误处策略131
5.5.2异常捕获和处理132
5.5.3错误日志和调试133
小结135
思考与练习5135
目录III
第6章异步编程和协程138
6.1异步编程的概念139
6.1.1同步编程与异步编程139
6.1.2阻塞I/O与非阻塞I/O140
6.1.3事件循环和事件驱动编程142
6.2Python中的asyncio和async/await144
6.2.1asyncio模块简介144
6.2.2async/await语法和用法146
6.2.3任务和未来148
6.3异步网络编程模式149
6.3.1异步客户端和服务器实例149
6.3.2异步流的使用151
6.3.3异步协议和传输153
6.4异步HTTP客户端和服务器154
6.4.1异步HTTP客户端库(如aiohttp)154
6.4.2构建异步HTTP服务器156
6.4.3异步Web框架(如Sanic)157
小结159
思考与练习6159
第7章网络应用架构163
7.1服务器模型164
7.1.1单线程、多线程和多进程概述164
7.1.2单线程服务器的优缺点164
7.1.3多线程服务器的设计166
7.1.4多进程服务器的设计167
7.2异步服务器和事件驱动架构168
7.2.1异步服务器的原理169
7.2.2事件驱动架构的优势170
7.2.3实现异步服务器的技术171
7.2.4实例172
7.3微服务和服务网格173
7.3.1微服务架构概述174
7.3.2服务网格的作用和组件174
7.3.3微服务的通信模式176
7.3.4配置实例177
7.4容器化和编排178
7.4.1容器技术概述178
7.4.2Docker容器的使用179
7.4.3容器编排工具(如Kubernetes)181
7.5云原生应用和云服务182
7.5.1云原生应用的特点182
7.5.2云服务提供商和服务选择183
小结186
思考与练习7187
第8章Web应用开发190
8.1Web前端技术:HTML、CSS、JavaScript191
8.1.1前端开发基础191
8.1.2响应式设计和框架194
8.1.3JavaScript编程和框架196
8.2Web表单和用户输入处理198
8.2.1表单元素和数据收集198
8.2.2输入验证和处理199
8.2.3文件上传和处理200
8.3安全性考虑:XSS、CSRF、HTTPS203
8.3.1跨站脚本攻击(XSS)防护203
8.3.2跨站请求伪造(CSRF)防护204
8.3.3使用HTTPS和内容安全策略206
8.4Web抓取和自动化207
8.4.1抓取工具和库207
8.4.2Web自动化工具209
8.4.3自动化抓取策略209
8.5使用Web框架构建应用211
8.5.1MVC模式和框架结构211
8.5.2路由和控制器212
8.5.3模板和视图213
8.6WebSocket和实时通信214
8.6.1WebSocket协议概述214
8.6.2实现实时通信的方法215
8.6.3WebSocket与Web框架集成217
小结219
思考与练习8219
第9章HTTP客户端和API设计223
9.1HTTP概述224
9.1.1HTTP的背景与历史224
9.1.2HTTP基本结构与应用225
9.2RESTfulAPI设计原则227
9.2.1RESTful架构风格228
9.2.2API设计最佳实践229
9.2.3API版本管理和文档231
9.3Python中的HTTP客户端库235
9.3.1requests库的使用235
9.3.2高级HTTP客户端功能237
9.3.3异步HTTP客户端238
9.4认证、授权和安全性240
9.4.1认证机制240
9.4.2授权和权限控制241
9.4.3API安全性考虑242
9.4.4API监控和限流243
小结245
思考与练习9245
第10章电子邮件处理248
10.1电子邮件协议:SMTP、POP、IMAP249
10.1.1SMTP协议和邮件发送249
10.1.2POP协议和邮件接收252
10.1.3IMAP协议和邮件管理254
10.2构造和解析电子邮件257
10.2.1MIME格式和邮件结构257
10.2.2构造复杂邮件(文本、HTML、附件)260
10.2.3解析和处理邮件内容263
10.3Python中的电子邮件处理库264
10.3.1smtplib和email模块265
10.3.2poplib和imaplib模块266
10.3.3第三方邮件处理库268
10.4邮件发送和接收自动化269
10.4.1自动化邮件发送脚本270
10.4.2自动化邮件接收和处理271
10.4.3邮件通知和警报系统273
小结276
思考与练习10277
第11章网络自动化基础281
11.1Python在网络自动化中的作用与优势282
11.2网络设备交互协议282
11.2.1常用的网络设备交互协议282
11.2.2使用Python库进行网络交互284
11.3基础网络配置自动化实践285
11.3.1典型的网络拓扑285
11.3.2Python自动化网络配置的三种策略286
11.3.3实践案例288
11.4子网与VLAN自动化策略292
11.4.1子网划分的自动化292
11.4.2VLAN配置的自动化293
11.4.3自动化配置的影响293
11.4.4实践示例294
小结295
思考与练习11296
第12章实验项目299
实验项目1TCPEcho服务器和客户端299
实验项目2UDP消息广播和接收302
实验项目3使用Python实现HTTP客户端303
实验项目4构建基于TLS/SSL的安全通信304
实验项目5数据序列化与反序列化(JSON、XML、Protobuf)306
实验项目6异步编程与asyncio库的使用307
实验项目7微服务架构下的服务注册与发现308
实验项目8Web应用开发与前端交互310
实验项目9RESTfulAPI设计与实现311
实验项目10电子邮件发送与接收自动化处理312
实验项目11网络自动化314
综合性实验项目构建和部署一个安全的微服务架构系统315
附录参考答案及解析318
1.1网络编程的应用2
1.2网络协议栈概述3
1.2.1OSI模型与TCP/IP模型3
1.2.2协议栈各层的功能和协议4
1.2.3网络接口和硬件抽象5
1.3应用层协议简介6
1.3.1协议的角色和服务模型6
1.3.2常见的应用层协议8
1.4网络编程库和工具10
1.4.1Python标准库中的网络模块10
1.4.2第三方网络编程库11
1.4.3网络调试和分析工具11
1.5网络会话的建立和管理12
1.5.1会话层的作用12
1.5.2会话的生命周期13
1.5.3会话状态管理15
1.6数据编码与解码17
1.6.1文本编码17
1.6.2二进制数据编码19
1.6.3序列化协议20
1.7IP地址和端口22
1.7.1IPv4与IPv6的区别22
1.7.2端口的作用和常见端口号24
1.7.3子网划分和网络地址转换25
1.8路由和数据包传输26
1.8.1路由器和交换机的作用26
1.8.2路由协议28
1.8.3数据包分片和重组29
1.9网络层协议深入30
1.9.1ICMP和网络诊断30
1.9.2ARP和MAC地址解析32
1.9.3VPN和隧道协议33
小结34
思考与练习135
第2章TCP/IP编程37
2.1TCP和UDP概述38
2.1.1TCP的特点和用途38
2.1.2UDP的特点和用途40
2.2套接字编程基础41
2.2.1创建和使用TCP套接字41
2.2.2创建和使用UDP套接字43
2.2.3套接字编程的常见错误45
2.3TCP客户端和服务器模型46
2.3.1构建TCP客户端46
2.3.2构建TCP服务器48
2.3.3处理并发连接50
2.4UDP通信模式55
2.4.1UDP客户端和服务器的交互55
2.4.2UDP广播和组播57
2.4.3UDP的可靠性增强技术60
2.5套接字选项和高级特性62
2.5.1套接字选项配置62
2.5.2套接字超时和非阻塞模式63
2.5.3Nagle算法和TCP_NODELAY选项及其使用场景65
2.6异常处理和超时66
2.6.1网络错误分类66
2.6.2异常处理机制67
2.6.3超时和重试策略68
小结70
思考与练习271
第3章DNS和网络服务发现74
3.1域名系统基础75
3.1.1DNS的工作原理75
3.1.2域名解析过程76
3.1.3DNS记录类型77
3.2使用getaddrinfo()函数和DNS解析78
3.2.1getaddrinfo()函数的使用79
3.2.2解析主机名和服务名80
3.2.3处理DNS解析异常81
3.3服务发现机制82
3.3.1服务注册和发现的概念82
3.3.2使用服务发现的场景83
3.3.3服务发现协议和工具84
3.3.4使用服务发现工具的最佳
实践85
小结85
思考与练习386
第4章网络通信安全88
4.1TLS/SSL基础89
4.1.1加密和解密基础89
4.1.2TLS/SSL协议概述90
4.1.3数字证书和信任链93
4.2证书和密钥管理95
4.2.1证书颁发机构和自签名证书95
4.2.2证书格式和工具97
4.2.3密钥生成和管理98
4.3加密算法和安全最佳实践100
4.3.1对称加密与非对称加密100
4.3.2哈希函数和数字签名102
4.3.3安全配置和弱点避免104
4.4Python中的TLS/SSL应用105
4.4.1ssl模块的使用105
4.4.2安全套接字的创建和配置106
4.4.3与HTTPS服务的交互108
小结110
思考与练习4111
第5章数据序列化和压缩114
5.1字符串和字节数据115
5.1.1Python中的字符串和字节类型115
5.1.2编码转换和兼容性116
5.1.3字节序和网络字节顺序117
5.2数据封装和帧结构118
5.2.1数据帧的概念和结构118
5.2.2封装和解封装数119
5.2.3帧同步和错误检测121
5.3序列化格式:JSON、XML、Protobuf122
5.3.1JSON的使用和特点122
5.3.2XML的使用和特点123
5.3.3Protobuf的使用和特点125
5.4数据压缩技术126
5.4.1压缩算法概述126
5.4.2Python中的压缩库128
5.4.3压缩数据的网络传输129
5.5错误处理和异常131
5.5.1网络异常分类和错误处策略131
5.5.2异常捕获和处理132
5.5.3错误日志和调试133
小结135
思考与练习5135
目录III
第6章异步编程和协程138
6.1异步编程的概念139
6.1.1同步编程与异步编程139
6.1.2阻塞I/O与非阻塞I/O140
6.1.3事件循环和事件驱动编程142
6.2Python中的asyncio和async/await144
6.2.1asyncio模块简介144
6.2.2async/await语法和用法146
6.2.3任务和未来148
6.3异步网络编程模式149
6.3.1异步客户端和服务器实例149
6.3.2异步流的使用151
6.3.3异步协议和传输153
6.4异步HTTP客户端和服务器154
6.4.1异步HTTP客户端库(如aiohttp)154
6.4.2构建异步HTTP服务器156
6.4.3异步Web框架(如Sanic)157
小结159
思考与练习6159
第7章网络应用架构163
7.1服务器模型164
7.1.1单线程、多线程和多进程概述164
7.1.2单线程服务器的优缺点164
7.1.3多线程服务器的设计166
7.1.4多进程服务器的设计167
7.2异步服务器和事件驱动架构168
7.2.1异步服务器的原理169
7.2.2事件驱动架构的优势170
7.2.3实现异步服务器的技术171
7.2.4实例172
7.3微服务和服务网格173
7.3.1微服务架构概述174
7.3.2服务网格的作用和组件174
7.3.3微服务的通信模式176
7.3.4配置实例177
7.4容器化和编排178
7.4.1容器技术概述178
7.4.2Docker容器的使用179
7.4.3容器编排工具(如Kubernetes)181
7.5云原生应用和云服务182
7.5.1云原生应用的特点182
7.5.2云服务提供商和服务选择183
小结186
思考与练习7187
第8章Web应用开发190
8.1Web前端技术:HTML、CSS、JavaScript191
8.1.1前端开发基础191
8.1.2响应式设计和框架194
8.1.3JavaScript编程和框架196
8.2Web表单和用户输入处理198
8.2.1表单元素和数据收集198
8.2.2输入验证和处理199
8.2.3文件上传和处理200
8.3安全性考虑:XSS、CSRF、HTTPS203
8.3.1跨站脚本攻击(XSS)防护203
8.3.2跨站请求伪造(CSRF)防护204
8.3.3使用HTTPS和内容安全策略206
8.4Web抓取和自动化207
8.4.1抓取工具和库207
8.4.2Web自动化工具209
8.4.3自动化抓取策略209
8.5使用Web框架构建应用211
8.5.1MVC模式和框架结构211
8.5.2路由和控制器212
8.5.3模板和视图213
8.6WebSocket和实时通信214
8.6.1WebSocket协议概述214
8.6.2实现实时通信的方法215
8.6.3WebSocket与Web框架集成217
小结219
思考与练习8219
第9章HTTP客户端和API设计223
9.1HTTP概述224
9.1.1HTTP的背景与历史224
9.1.2HTTP基本结构与应用225
9.2RESTfulAPI设计原则227
9.2.1RESTful架构风格228
9.2.2API设计最佳实践229
9.2.3API版本管理和文档231
9.3Python中的HTTP客户端库235
9.3.1requests库的使用235
9.3.2高级HTTP客户端功能237
9.3.3异步HTTP客户端238
9.4认证、授权和安全性240
9.4.1认证机制240
9.4.2授权和权限控制241
9.4.3API安全性考虑242
9.4.4API监控和限流243
小结245
思考与练习9245
第10章电子邮件处理248
10.1电子邮件协议:SMTP、POP、IMAP249
10.1.1SMTP协议和邮件发送249
10.1.2POP协议和邮件接收252
10.1.3IMAP协议和邮件管理254
10.2构造和解析电子邮件257
10.2.1MIME格式和邮件结构257
10.2.2构造复杂邮件(文本、HTML、附件)260
10.2.3解析和处理邮件内容263
10.3Python中的电子邮件处理库264
10.3.1smtplib和email模块265
10.3.2poplib和imaplib模块266
10.3.3第三方邮件处理库268
10.4邮件发送和接收自动化269
10.4.1自动化邮件发送脚本270
10.4.2自动化邮件接收和处理271
10.4.3邮件通知和警报系统273
小结276
思考与练习10277
第11章网络自动化基础281
11.1Python在网络自动化中的作用与优势282
11.2网络设备交互协议282
11.2.1常用的网络设备交互协议282
11.2.2使用Python库进行网络交互284
11.3基础网络配置自动化实践285
11.3.1典型的网络拓扑285
11.3.2Python自动化网络配置的三种策略286
11.3.3实践案例288
11.4子网与VLAN自动化策略292
11.4.1子网划分的自动化292
11.4.2VLAN配置的自动化293
11.4.3自动化配置的影响293
11.4.4实践示例294
小结295
思考与练习11296
第12章实验项目299
实验项目1TCPEcho服务器和客户端299
实验项目2UDP消息广播和接收302
实验项目3使用Python实现HTTP客户端303
实验项目4构建基于TLS/SSL的安全通信304
实验项目5数据序列化与反序列化(JSON、XML、Protobuf)306
实验项目6异步编程与asyncio库的使用307
实验项目7微服务架构下的服务注册与发现308
实验项目8Web应用开发与前端交互310
实验项目9RESTfulAPI设计与实现311
实验项目10电子邮件发送与接收自动化处理312
实验项目11网络自动化314
综合性实验项目构建和部署一个安全的微服务架构系统315
附录参考答案及解析318













