章节知识路线
- 3.1 因特网客户端简介
- 3.2 文件传输
- 3.3 网络新闻
- 3.4 电子邮件
- 3.5 实战
章节主张:因特网客户端编程本质上是在训练“围绕协议构建稳定客户端”的能力,而不是记忆 FTP、SMTP、POP、IMAP 的老名字。
中文释读:本章把多个协议放在一起,是为了让你看到:认证、命令、响应、状态、解析、错误恢复其实遵循相似模式。会这种模式,未来换成任何 API 或 SaaS 也更容易上手。
把 3.1 因特网客户端简介 放回本章上下文,它更像是 结构化数据交换与系统边界 的一个具体落点。
怎么用:把这节内容转成自己的一个最小脚本、接口实验或系统边界测试,验证它在真实任务中的输入输出。
提醒:最常见的问题是只记住 3.1 因特网客户端简介 的 API 或步骤,却没搞清它的上下游依赖与边界条件。
第 3 章 因特网客户端编程 75 第 2 章介绍了使用套接字的底层网络通信协议。
怎么用:把这节内容转成自己的一个最小脚本、接口实验或系统边界测试,验证它在真实任务中的输入输出。
提醒:最常见的问题是只记住 3.2 文件传输 的 API 或步骤,却没搞清它的上下游依赖与边界条件。
第 3 章 因特网客户端编程 75 第 2 章介绍了使用套接字的底层网络通信协议。 这种类型的网络是当今因特网中大部分 客户端/服务器协议的核心。 这些网络协议分别用于文件传输(FTP、SCP 等)、阅读 Usenet 新闻组(NNTP)、发送电子邮件(SMTP)、从服务器上下载电子邮件(POP3、IMAP)等。
第 3 章 因特网客户端编程 81 以下是一些典型的 FTP 客户端类型。
怎么用:把这节内容转成自己的一个最小脚本、接口实验或系统边界测试,验证它在真实任务中的输入输出。
提醒:最常见的问题是只记住 3.3 网络新闻 的 API 或步骤,却没搞清它的上下游依赖与边界条件。
第 3 章 因特网客户端编程 81 以下是一些典型的 FTP 客户端类型。 命令行客户端程序:使用一些 FTP 客户端程序(如/bin/ftp 或 NcFTP)进行 FTP 传 输,用户可以在命令行中交互式执行 FTP 传输。 GUI 客户端程序:与命令行客户端程序相似,但它是一个 GUI 程序,如 WS_FTP、 Filezilla、CuteFTP、Fetch、SmartFTP。
90 第 1 部分 通用应用主题 3.4 电子邮件 电子邮件既古老又现代。
怎么用:把这节内容转成自己的一个最小脚本、接口实验或系统边界测试,验证它在真实任务中的输入输出。
提醒:最常见的问题是只记住 3.4 电子邮件 的 API 或步骤,却没搞清它的上下游依赖与边界条件。
90 第 1 部分 通用应用主题 3.4 电子邮件 电子邮件既古老又现代。 对于作者这些很早之前就开始使用因特网的人来说,电子邮件 看上去都非常 “古老”, 更不用说与今日基于网页的在线聊天、 即时聊天(IM) 、 数字电话 (如 VoIP[Voice over Internet Protocol])等更新、更快的通信方式相比了。 下面将从宏观上介绍 一下电子邮件是如何工作的。
102 第 1 部分 通用应用主题 获取某条消息的相关信息。
怎么用:把这节内容转成自己的一个最小脚本、接口实验或系统边界测试,验证它在真实任务中的输入输出。
提醒:最常见的问题是只记住 3.5 实战 的 API 或步骤,却没搞清它的上下游依赖与边界条件。
102 第 1 部分 通用应用主题 获取某条消息的相关信息。 >>> rsp, data = s.fetch('98', '(BODY)') >>> data[0] '98 (BODY ("TEXT" "PLAIN" ("CHARSET" "ISO-8859-1" "FORMAT" "flowed" "DELSP" "yes") NIL NIL "7BIT" 1267 33))' 获取某条消息的头。 >>> rsp, data = s.fetch('98', '(BODY[HEADER])') >>> data[0][1][:45] 'Received: from mail-gy.google.com (mail-gy.go') 获取所有已读消息的 ID(也可以尝试使用“ALL”、“NEW”等)。
第 3 章 因特网客户端编程 115 第 58~88 行 剩下的代码与 Yahoo! Mail 中的几乎完全相同。
怎么用:把这节内容转成自己的一个最小脚本、接口实验或系统边界测试,验证它在真实任务中的输入输出。
提醒:最常见的问题是只记住 3.6 相关模块 的 API 或步骤,却没搞清它的上下游依赖与边界条件。
第 3 章 因特网客户端编程 115 第 58~88 行 剩下的代码与 Yahoo! Mail 中的几乎完全相同。 前面提到过,这里移除了 Gmail 中用不 到的一些错误检查。 最后一个小差异是为了能使用 SMTP/TLS 和 STMP/SSL 发送消息,需要 修改 Subject 行(第 68 行)。
为什么协议客户端开发不能只靠“跑通一次示例”?