【Python】python网络协议
套接字是常见的低级别的网络通讯协议,在此基础上,还有很多其他的网络通讯协议。用于实现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类
【Python】python网络协议的更多相关文章
- python 28 网络协议
目录 网络协议 1. C/S.B/S 架构 1.1 C/S 架构: 1.2 B/S 架构: 2. 网络通信原理 3. OSI七层协议(TCP/IP五层): 3.1 物理层: 3.2 数据链路层: 3. ...
- PYTHON黑帽编程1.5 使用WIRESHARK练习网络协议分析
Python黑帽编程1.5 使用Wireshark练习网络协议分析 1.5.0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks At ...
- python模块:网络协议和支持
python模块:网络协议和支持 webbrowser 调用浏览器显示html文件 webbrowser.open('map.html') [webbrowser - Convenient Web-b ...
- Python的网络编程[4] -> DHCP 协议[0] -> DHCP 的基本理论
DHCP协议 / DHCP Protocol 目录 DHCP 基本理论 DHCP 通信流程 DHCP 完整报文 DHCP 的 Optional 字段 DHCP 的报文类型 1 DHCP 基本理论 DH ...
- Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)
Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器 定义: ...
- 通过python基于netconf协议获取网络中网元的配置数据,助力企业网络控制自动化轻松实现!
摘要:在当今信息化时代,大多数企业都需要网络支撑企业的ICT运行,提升企业运行效率,针对企业网络中的网元设备(包括交换机,路由器,防火墙等),很多企业希望根据自身的业务特点定制网络管理,比如可以实现网 ...
- python之旅:网络基础之网络协议篇
一.操作系统基础 操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才 ...
- python全栈学习笔记(一)网络基础之网络协议篇
阅读目录 一.操作系统基础 二.网络通信原理 2.1 互联网的本质就是一系列的网络协议 2.2 osi七层协议 2.3 tcp/ip五层模型讲解 2.3.1 物理层 2.3.2 数据链路层 2.3.3 ...
- 27 python 网络基础之网络协议
一.操作系统基础 操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才 ...
- Python网络编程(OSI模型、网络协议、TCP)
前言: 什么是网络? 网络是由节点和连线构成,表示诸多对象及其相互联系. 在数学上,网络是一种图,一般认为专指加权图. 网络除了数学定义外,还有具体的物理含义,即网络是从某种相同类 型的实际问题中抽象 ...
随机推荐
- xenserver 增加新硬盘
xenserver 增加新硬盘 1.XS创建本地存储 首先 分区好的的硬盘接到服务器上 查看所有硬盘了的id ls -l /dev/disk/by-id/ 记下硬盘的全称.接下来开始挂载 xe sr ...
- CentOS6.5下nginx-1.8.1.tar.gz的单节点搭建(图文详解)
不多说,直接上干货! [hadoop@djt002 local]$ su root Password: [root@djt002 local]# ll total drwxr-xr-x. root r ...
- 4.Projects and Scenes介绍
1.Project 一个项目是由一系列的文件(如图片.音频.几何).场景以及vzp文件组成.这些文件被导入到项目对应的文件夹中.项目外部资源在场景中被使用后,会导入项目中,除非该资源被标记为外部引用. ...
- WordPress音乐主题Always1.8
WordPress响应式主题 音乐主题个人博客杂志主题Always主题V1.8 Always主题V1.8是以Ajax加以CSS动画的方式,很好的将优雅的设计感和极度精简的代码同时表现了出来,进而缔造出 ...
- (转)webpack从零开始第6课:在Vue开发中使用webpack
vue官方已经写好一个vue-webpack模板vue_cli,原本自己写一个,发现官方写得已经够好了,自己写显得有点多余,但为了让大家熟悉webpack,决定还是一步一步从0开始写,但源文件就直接拷 ...
- SurfaceView加载长图
1:SurfaceView加载长图,移到.可以充当背景 效果截图 2:View (淡入淡出动画没实现:记录下) package com.guoxw.surfaceviewimage; import a ...
- echarts 纵坐标数字太长显示补全,以及文字倾斜显示
如上数字太长,显示补全,以及x坐标的月份当数量大的时候也会显示补全: x可以调节纵坐标label的宽度 y2可以调节横坐标label的高度 grid: { x: 100, //默认是80px y: 6 ...
- Java入门第一季——从此投身Java??
找工作告一段落. 最后的工作呢,和java紧密相关,也是阴差阳错,不过都是软件开发,都好了,不过以后侧重点肯定是在java这边,php有机会还是一直学下去的,那么美的说~ Java开发第一季 一.简 ...
- TCP连接的建立以及利用tcpdump分析连接建立的过程(转)
原文地址:http://www.cnblogs.com/coser/archive/2010/12/05/1968812.html 一.实验目的 实验1_1: 使用Freebsd/Linux操作系统下 ...
- Amaze UI的一点总结
做一个微信公众号内的网页的时候,用到了Amaze UI,也称妹子UI. 官网上宣称,Amaze UI中国首个开源 HTML5 跨屏前端框架,用下来的感觉是比较类似于bootstrap,都是移动端优先. ...