Python 客户端网络协议模块与 URL 访问详解
1. 客户端与服务端程序及协议模块概述
在互联网环境中,程序可以作为客户端(访问资源的程序)或服务端(提供服务的程序)运行。这两类程序都会涉及协议问题(如如何访问和传输数据)以及数据格式化问题。Python 库通过多个不同的模块来处理这些问题。
数据访问通常可以通过统一资源定位符(URL)来简单实现。Python 提供了urlparse、urllib和urllib2等模块来支持 URL。对于一些特殊情况,比如需要对通常通过 URL 访问的数据访问协议进行细粒度控制时,Python 提供了httplib和ftplib模块。而对于 URL 通常无法满足需求的协议,如邮件(poplib和smtplib)、网络新闻(nntplib)和 Telnet(telnetlib)等,也有相应的模块支持。此外,Python 还通过xmlrpclib模块支持分布式计算的 XML - RPC 协议。
2. URL 结构解析
URL 用于标识互联网上的资源,它是一个由多个可选部分组成的字符串,这些部分被称为组件,包括方案(scheme)、位置(location)、路径(path)、查询(query)和片段(fragment)。一个完整的 URL 示例如下: