根据前面对网络分层棋型的介绍,我们知道实际的网络模型大致分为四层,这四层各有对应的网络协议提供支持,
网络层协议主要是 IP,它是所有互联网协议的基础,其中 ICMP(Internet Control Message Protocol)、IGMP(Internet Group Manage Protocol)、ARP(Address Resolution Protocol)、RARP(Reverse Address Resolution Protocol)等协议都可认为是 IP 协议族的子协议。通常来说,很少会直接基于网络层进行应用程序编程。
传输层协议主要是 TCP 和 UDP,Python 提供了 socket 等模块针对传输层协议进行编程。
应用层协议就更多了,正如图 1 所示的,FTP、HTTP、TELNET 等协议都属于应用层协议,Python 同样为基于应用层协议的编程提供了丰富的支持。
虽然 Python 自带的标准库已经提供了很多与网络有关的模块,但如果在使用时觉得不够方便,则不要忘记了 Python 的优势,即大量的第三方模块随时可用于增强 Python 的功能。
表 2 显示了 Python 标准库中的网络相关模块。
模块 | 描述 |
---|---|
socket | 基于传输层 TCP、UDP 协议进行网络编程的模块 |
asyncore | socket 模块的异步版,支持基于传输层协议的异步通信 |
asynchat | asyncore 的增强版 |
cgi | 基本的 CGI(Common Gateway Interface,早期开发动态网站的技术)支持 |
E-mail 和 MLME 消息处理模块 | |
ftplib | 支持 FTP 协议的客户端模块 |
httplib、http.client | 支持 HTTP 协议以及 HTTP 客户揣的模块 |
imaplib | 支持 IMAP4 协议的客户端模块 |
mailbox | 操作不同格式邮箱的模块 |
mailcap | 支持 Mailcap 文件处理的模块 |
nntplib | 支持 NTTP 协议的客户端模块 |
smtplib | 支持 SMTP 协议(发送邮件)的客户端模块 |
poplib | 支持 POP3 协议的客户端模块 |
telnetlib | 支持TELNET 协议的客户端模块 |
urllib及其子模块 | 支持URL 处理的模块 |
xmlrpc、xmlrpc.server、xmlrpc.client | 支持XML-RPC协议的服务器端和客户端模块 |
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试