标签
内容简介
本书是《Foundations of Python Network Programming》第3版的中文译本,全部示例采用 Python 3 编写,面向具备一定 Python 基础、希望深入理解网络协议并用 Python 构建网络应用程序的开发者。 全书从客户端/服务器模型讲起,先梳理协议栈与库的分层关系、应用层协议的使用方式、字符编码与解码、IP 地址与路由等基础概念,再依次深入 UDP、TCP 套接字编程,讲解端口号、绑定接口、超时与退避、连接管理、死锁与半开连接等实操细节;随后覆盖套接字名与 DNS 解析、网络数据的序列化与网络错误的处理、TLS/SSL 加密通信。在服务器一侧,书中讨论了多进程/多线程服务器架构、缓存与消息队列的用法,并分别从客户端和服务器两个角度剖析 HTTP,延伸至万维网应用中的安全话题,包括跨站脚本(XSS)与跨站请求伪造(CSRF)的原理和防护方法。 后半部分转向互联网经典应用协议:电子邮件的构造与解析、SMTP 发送、POP 与 IMAP 收取、Telnet 与 SSH 远程登录,以及 RPC 远程调用。书中配有大量可直接运行的代码清单与示例,并涉及 Flask 框架配置 URL、异步 I/O 事件循环编写等实践内容,帮助读者把协议原理落到可运行的代码上。
编辑推荐
市面上的 Python 网络书大体分两类:一类只讲 requests、scrapy 这类库怎么调用,一类上来就讲 TCP 三次握手、滑动窗口,读完却不知道在 Python 里怎么写。这本书难得地站在中间——从应用开发者的视角出发,把「协议为什么这样设计」和「Python 里怎么写出来」并排放。 它采用 Python 3 示例,涵盖 UDP、TCP 套接字、DNS、TLS/SSL、服务器架构、HTTP 客户端与服务器、电子邮件三大协议(SMTP/POP/IMAP)、SSH 与 RPC,几乎把网络编程的经典话题一网打尽,而且每章都给出可运行代码清单,不是伪代码。 尤其值得称道的是对现代话题的处理:Python 3 的 SSL 支持、异步 I/O 事件循环的编写方法、用 Flask 配置 URL,以及 XSS、CSRF 的攻击原理与防护,都写在了书里 — 这些内容让一本 2016 年的书至今读起来仍不过时。作者 Brandon Rhodes 是 Dropbox 工程师、长期活跃于 PyCon 的知名讲者,行文很清楚,讲原理不绕弯。豆瓣读者给出 9.2 分,对一本技术书来说是很实在的口碑。适合想从「会调库」走向「懂网络」的 Python 开发者放在手边翻阅。
适合谁读
适合
- 已掌握 Python 基础语法、想系统补齐网络编程知识的中级开发者
- 需要自行编写服务端、爬虫或中间件,要理解 TCP/UDP 细节的后端工程师
- 做运维、系统集成,需要处理 DNS、邮件协议、SSH、RPC 的技术人员
- 计算机专业学生,用来把「计算机网络」课程理论与可运行代码对齐
不适合
- 完全零编程经验、连函数与类都不熟悉的初学者
- 只想找现成框架、不想了解底层协议原理的读者
- 寻找 Python 3.10 以后新语法与新库(如 asyncio 最新 API)的读者
阅读建议
- 对照阅读第1、2、3章,先手写一遍原始 UDP/TCP 客户端与服务端,再回头理解协议分层。
- 把书中代码真正跑起来:用 tcpdump 或 Wireshark 抓包对照,理解每个字节在网络上如何传输。
- 按「HTTP 客户端→服务器→万维网安全」顺序读第9至11章,再配合 Flask 实践做一个小型 Web 服务。
- 邮件、SSH、RPC 等协议章节可按工作需求跳读,当作协议速查手册随时回翻。
出版社简介
人民邮电出版社
中国 · 成立于 1953 年
人民邮电出版社以科技、计算机与信息通信类图书见长,并由此延伸至摄影、艺术、软件学习与励志成长等门类,形成较为多元的出版方向。库内图书既涵盖《重构与模式(修订版)》《华为交换机学习指南(第二版)》等计算机与通信技术读物,也收录《小王子(中英法彩绘典藏纪念版)》《了不起的盖茨比》《假如给我三天光明》等双语典藏类作品;《北京十年:1980-1990》与《鬼刀 WLOP个人插画作品集》则体现其在摄影与艺术领域的布局。作者资源包括安东尼·圣埃克苏佩里、海伦·凯勒、Joshua Kerievsky、王达、张兆增与WLOP等。
目录
- 第1章 客户端/服务器网络编程简介
- 第2章 UDP
- 第3章 TCP
- 第4章 套接字名与DNS
- 第5章 网络数据与网络错误
- 第6章 TLS/SSL
- 第7章 服务器架构
- 第8章 缓存与消息队列
- 第9章 HTTP客户端
- 第10章 HTTP服务器
- 第11章 万维网
- 第12章 电子邮件的构造与解析
- 第13章 SMTP
- 第14章 POP
- 第15章 IMAP
- 第16章 Telnet和SSH
- 第18章 RPC
常见问题
这本书的作者和中文版信息是什么?
原书《Foundations of Python Network Programming》由 Brandon Rhodes 与 John Goerzen 合著,中文第3版由诸豪文翻译,人民邮电出版社 2016 年 9 月出版,属「图灵程序设计丛书」,ISBN 为 978-7-115-43350-3,定价 79 元。
书里的代码是用 Python 2 还是 Python 3?
全部采用 Python 3 编写,并且专门介绍了 Python 3 中新提供的 SSL 支持以及异步 I/O 事件循环的编写方法,因此在 Python 3 环境下无需做兼容性改写。
读这本书需要什么基础?
需要能熟练读写 Python 基本语法(函数、类、异常处理、文件操作),并对 TCP/IP 有最粗浅的印象。完全没有网络概念也能读,因为第1章从协议栈讲起,但零编程基础会非常吃力。
这本书适合当网络编程的入门第一本吗?
更适合作为「第二本」。它能补上大多数教程缺失的协议原理与套接字细节,但如果连 HTTP 请求、套接字是什么都没概念,建议先读一本更偏实战入门的书,再回来读这本深入。
为什么目录里没有第17章?
中文版目录在部分图书馆书目记录中第16章后直接接第18章 RPC,属于原书章节编排或记录缺漏,实际章节以纸书正文为准,不影响整体知识结构的连贯阅读。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。