脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - Python之网络编程

Python之网络编程

2023-07-03 17:23chao0308 Python

网络编程 网络编程:就是基于网络开发一个B/S或C/S架构的软件。# 目的:以ATM为例,现在我们想把之前写的ATM系统编程基于网络传输的,别人如果想用,就必须把客户端下载到本地电脑上,以登录为例,用户把用户名和密码在客户

网络编程

网络编程:就是基于网络开发一个B/S或C/S架构的软件。
# 目的:
"""
	以ATM为例,现在我们想把之前写的ATM系统编程基于网络传输的,别人如果想用,就必须把客户端下载到本地电脑上,以登录为例,用户把用户名和密码在客户端输入完成,然后,把用户名和密码传到服务端进行用户名和密码的验证,这就是一款基于网络开发出的软件.
"""

软件开发架构:
	分为两个架构:
    # cs架构与BS架构
    1、Client<------网络传输----->Server
    客户端软件send          服务端软件recv
    操作系统                操作系统
    计算机硬件<---物理介质--->计算机硬件
    
    
    # B/S的由来
    客户端和服务端存在的问题:当我们下载大量的软件的时候,会占用用户电脑的     大量资源,时间长了之后,电脑就会受影响. 用户想要使用软件就必须下载,而     每次下载都是成本很高的

    2、Browser<------网络传输------>Server
     浏览器                         服务端 
     操作系统                       操作系统
    
服务端所具备的特性:
	1.24小时不间断对外提供服务
    2.服务端要有一个公网IP

OSI七层协议

网络通信的原理:
"网络存在的意义就是可以跨地域传输信息>>>>称之为通信"
网络 = 物理链接介质+互联网协议
"互联网的本质其实就是一堆协议"

3、os七层协议
# 互联网协议按照功能不同分为OSI七层或者TCP/IP五层或者TCP/IP四层
七层协议:
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

五层协议:# 五层协议是将应用层、表示层、会话层统称为应用层
应用层、传输层、网络层、数据结构层、物理层

四层协议:# 就是在五层协议的基础上将数据链路层跟物理层统称为网络接口层
应用层、传输层、网络层、网络接口层

协议是什么:
    "协议就是规定数据的组织格式"
    格式:头部+数据部分
    封装过程:数据外部加头
    拆封过程:拆掉加上的头部获取数据
    
五层协议:
计算机1                     计算机2

应用层                       应用层
传输层          段           传输层
网络层          包           网络层
数据链路层       帧          数据链路层
物理层<--------交换机------>物理层

Python之网络编程

####################################################################
物理层:
	物理层主要是用来将打包的数据将它们转为二进制然后传输到另一台设备上去
    """
    	也可以理解为它是专门发送高低电频的
    	单纯的发送高低电频是没有意义的,需要对电频进行分组,来表示不同的意思
    """
    # 物理层做不到分组
    
   ####################################################################
数据链路层:
	数据链路层就是专门对数据进行分组的
    "该层的数据称之为数据帧,数据帧由两部分组成:head(报头) + date(真实数据)"
    head部分 : # 固定18个字节
    发送者/源地址,6个字节
    接收者/源地址,6个字节
    数据类型,6个字节
    
    date部分:
    	最短的46个字节
        
    # 数据帧的具体内容:head长度+date长度=最短的64字节
    """该层使用的是以太网协议,以太网协议规定的是,任何接入互联网的计算机都应该有一个网卡,默认的就是以太网"""
    MAC地址:每一个网卡都要有一个Mac地址,每块网卡出厂时都被烧制上一个世界唯一的Mac地址,长度为48位2进制,通常由12位16进制数表示
    # Mac地址可以确定局域网中唯一一台计算机
    
####################################################################
网络层:
	这一层使用的是IP协议,该协议规定接入互联网的计算机必须要有一个IP地址,该层的数据称之为数据包
    IP地址的分类:"IPV4,IPV6"
    IP地址:IP地址可以确定世界范围内的任意一个局域网
    IP地址的组成:
    	0.0.0.0---------255.255.255.255  # 十进制
        00000000.00000000.00000000.00000000-------------------------         11111111.11111111.11111111.11111111  # 二进制
    IP地址分为:公网和私网
    1、公网IP:固定的,不会变的,但是需要购买
    2、私网IP:192.168.1.1,私网IP是可变的
    子网掩码:
    	子网掩码中的1位表示网络标识,0位表示主机标识。通过与IP地址进行按位与运算,可以得到网络地址
    """IP地址+MAC地址就可以确定世界范围内的唯一一台计算机"""
    # 其实,这里只需要IP地址就可以确定世界范围内的唯一一台计算机,为什么?
    因为:有一个叫arp协议,可以根据IP地址计算出来Mac地址,所以,有了IP地址就相当于有了Mac地址
    本地回环地址:127.0.0.1(就是找自己的电脑)
####################################################################
传输层:
	该层使用的是TCP协议以及UDP协议,也称之为端口协议,我们一般使用一个端口来表示一个个的应用程序
    # 一个端口表示一个正在运行的程序
    端口范围:0-65535
    """
    	1、0-1024之间的端口一般是系统使用的端口号,我们不要使用,避免造成冲突
    	2、1025-8000之间的端口号一般是常用软件的端口号
    		MYSQL端口号:3306
    		Django端口号:8000
    	3、我们自己开发的软件尽量使用8000以后的端口号
    """
    常用的端口号:
    应用程序: FTP    TFTP   TELNET   SMTP   DNS   HTTP   SSH   MYSQL
    端口号:  21、22   69    23       25     53    80     22   3306 
    
    DNS域名解析:
    什么是域名?
    	"""域名的本质其实就是IP地址,域名最终还是要解析成对应的IP地址,才能找到IP地址对应的计算机"""
    常见的域名:baidu.com、jd.com、taobao.com
    解析过程:
    	baidu.com---------DNS---------百度IP地址
        
    "我们计算机的host文件里面也保存了域名和IP的对应关系"
    
    查找顺序;
    	1. 先从你自己电脑的host文件中查找的
        	host文件路径:C:WindowsSystem32driversetc
        2. 如果hosts文件没有找到对应的关系, 在去对应平台的关系中去找
        3. 域名是需要去购买的,并且是需要备案的
####################################################################
应用层;
	应用层是离我们最近的一层
    1、客户端:想用什么协议就用什么协议,可以按照我们自己的想法来
       浏览器:不可以随便使用,需要按照浏览器自己的协议来,也就是http、https协议
    2、 网址:https://www.baidu.com/?tn=49055317_42_hao_pg
        	 协议://域名:端口/v1/v2?参数
      """
       		http特征:
       			1. 不安全,因为经过http协议的数据都是明文传输的
       		https协议:
       			2. 安全,经过https协议传输的数据都是密文传输
       			
       			https = http + ssl证书
       			ssl证书:要去机构申请,国际组织,怎么用呢?
       			NGINX服务器,需要在nginx服务器的配置文件中配置一些代码才能使用.
       """    

TCP协议和UDP协议

TCP协议:	
    TCP协议的三次握手和四次挥手

    TCP协议是可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

    三次握手-------------->为了建立链接



    四次挥手--------------->断开连接

    TCP协议的三次握手为什么可以保证数据安全?是因为建立了双向通道吗?
    原因是:TCP协议的反馈机制

Python之网络编程

UDP协议:
    不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。
	1. 不建立双向连接,也没有三次握手
    2. 速度快

延伸 · 阅读

精彩推荐
  • Pythonpython logging模块的使用

    python logging模块的使用

    这篇文章主要介绍了python logging模块的使用,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下...

    安家与此11802020-09-08
  • PythonPython Learning 列表的更多操作及示例代码

    Python Learning 列表的更多操作及示例代码

    这篇文章主要介绍了Python Learning-列表的更多操作,需要的朋友可以参考下...

    东南有大树4012021-03-29
  • Pythondjango之跨表查询及添加记录的示例代码

    django之跨表查询及添加记录的示例代码

    表查询是重要的操作。这篇文章主要介绍了django之跨表查询及添加记录的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小...

    银鑫8862021-04-08
  • Pythonpython3设计模式之简单工厂模式

    python3设计模式之简单工厂模式

    这篇文章主要为大家详细介绍了python3设计模式之简单工厂模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    skadieye3452020-12-11
  • PythonPython requests模块安装及使用教程图解

    Python requests模块安装及使用教程图解

    这篇文章主要介绍了Python requests模块安装及使用教程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...

    笔筒里的猫6802020-07-01
  • Pythonpython实现图像增强算法

    python实现图像增强算法

    这篇文章主要为大家详细介绍了python实现图像增强算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    咸鱼也有翻身日9312022-08-05
  • PythonPython可视化神器pyecharts绘制桑基图

    Python可视化神器pyecharts绘制桑基图

    这篇文章主要介绍了Python可视化神器pyecharts绘制桑基图,即桑基能量分流图,也叫桑基能量平衡图,更多相关介绍具有一定的参考价值,需要的朋友可以参...

    王小王_1233392022-07-06
  • PythonKMP算法精解及其Python版的代码示例

    KMP算法精解及其Python版的代码示例

    KMP算法基本上被人们用作字符串的匹配操作,这里我们就来介绍KMP算法精解及其Python版的代码示例,需要的朋友可以参考下 ...

    WhiteFish5012020-08-24