套接字是常见的低级别的网络通讯协定,在此基础上,还有很多其余的网络通讯协定。用于实现 client-server 的网络互联,以下对这些协定做一个简略的介绍。
1、文件传输
FTP:文件传输协定。可能上传或下载文件,採用了 Unix 多用户的概念,用户肯定要输出无效的 username 和 password 才能应用,只是也反对匿名登录。
在底层实现上,FTP 仅仅应用 TCP 而不应用 UDP。被动模式下应用两个套接字,各自是管制命令 port 和数据 port。被动模式下应用一个套接字,为管制命令接口。client 工作流程为:连贯 - 登录 - 传输 - 完结。
python 相干模块为 ftplib,应用时须要实例化一个 ftplib.FTP 类对象。典型的 FTPclient 有:命令行 client 程序、GUIclient 程序、网页浏览器。以及本人开发的程序等。
HTTP:网页的超文本传输协定。
HTTP 次要用于网页文件的下载和訪问 Web 服务上。它个别不要求用户输出登录的 usernamepassword 就可能訪问 server 上的文件和服务。
scp/rsync:要求用户登录到 server,否则不能上传或下载文件。
rcp:近程文件复制协定。
UUCP:复制协定。
2、网络新闻
Usenet 新闻零碎是一个寰球存档的电子公告版,各种主题的新闻一应俱全,整个零碎是一个由大量计算机组成的一个宏大的寰球网络。计算机之间共享 Usenet 上的帖子,每一个零碎都有一个它曾经订阅的新闻组的列表。它仅仅接管它感兴趣的新闻组里的帖子。
NNTP:网络新闻传输协定。
供用户在新闻组中下载或发表帖子。仅仅应用一个规范 port119 来做通信。
类似于 FTP。python 相干模块为 nntplib,应用时实例化 nntplib.NNTP 类对象。
3、电子邮件
电子邮件系统有很多组件。最根本的组件就是音讯传输代理 MTA,这是一个在邮件替换主机上执行的一个 server 程序,它负责邮件的路由、队列和发送工作,它们就是邮件从源主机到目标主机所要通过的跳板。
SMTP:简略邮件传输协定。在因特网上 MTA 之间用于音讯替换的最常常应用的 MTS,它被 MTA 用来把电子邮件从一台主机传送到还有一台主机,在发电子邮件的时候。必须要连贯到一个内部的 SMTPserver,这时。发送的邮件程序是一个 SMTPclient。SMTPserver 也因而成为了音讯的第一个跳板。python 相干模块为 smtplib,应用时实例化 smtplib.SMTP 类对象。通信时,仅仅要一个 port25。
除了 SMTP 之外。还有一些开源的 MTA 如 Sendmail、Postfix 和商业 MTA 如 Microsoft 的 Exchange。
邮件用户代理 MUA 从 server 上下载邮件,用于下载邮件的第一个协定叫邮局协定 POP,目标是让用户的工作站可能訪问邮箱 server 里的邮件,邮件要能从工作站通过 SMTP 发送到邮件 server。
与 POP 相干的 python 模块为 poplib,应用时实例化 poplib.POP3 类对象。
若干年之后,呈现了还有一个协定。交互式邮件訪问协定 IMAP,它比 POP 更为简单。
4、相干模块
email:email 解决的包(也反对 MIME)
rfc822:RFC2822 邮件头解析器
smtpd:SMTPserver
base64:Base16、32 和 64 数据编码(RFC 3548)
mhlib:解决 MH 目录和信息的类
mailbox:反对 mailbox 文件格式解析的类
mailcap:mailcap 文件的解决模块
mimetools:(不倡议应用)MIME 信息解析工具(应用下面的 email)
mimetypes:在文件名称或 URL 到相干的 MIME 类型之间转换的模块
MimeWriter:(不倡议应用)MIME 信息处理模块(应用下面的 email)
mimify:(不倡议应用)信息的 MIME 解决工具(应用下面的 email)
binascii:二进制和 ASCII 转换
binhex:Binhex4 编码和解码反对
ftplib:FTP 协定 client
gopherlib:Gopher 协定 client
httplib:HTTP 和 HTTPS 协定 client
imaplib:IMAP4 协定 client
nntplib:NNTP 协定 client
poplib:POP3 协定 client
smtplib:STMP 协定 client
telnetlib:Telnet 协定 client 类