【一】C/S模型和B/S模型
python
1.C/S模型----》c是指客户端,请求服务的,s是服务端,提供服务的
2.B/S模型----》
B/S架构本质也是C/S架构
让浏览器充当各个厂家的客户端 用户无需对应下载相应客户端
两种架构的优缺点
C/S架构:王者荣耀
优势:针对客户端可以高度定制
劣势:需要用户去下载才能使用
B/S架构:普通网页
优势:无需下载 急速体验
劣势:无法做到高度定制 体验效果较差
'''
目前的趋势其实更加偏向于B/S架构
微信小程序
只需要下载一个微信就可以通过微信去访问很多服务端
支付宝诸多应用
只需要下载一个支付宝就可以通过支付宝体验很多服务
统一提供接口服务>>>:获取大量用户及数据 中途还可以提供广告服务
'''
【二】网络编程
python
1.基于互联网编写代码
2.可以开发C/S架构的软件
3.目的:实现不同计算机之间数据交互
没有网络编程技术的时候只能拿U盘拷贝并携带
为了跨区域交互数据所以发明了网络编程
4.互联网协议(OSI七层协议)
各个手机厂商的手机零部件相同是因为要遵循同一个协议标准
【三】OSI七层协议
python
物联网淑慧试用
1.应用层
2.表示层
3.会话层
4.传输层
5.网络层
6.数据链路层
7.物理层
TCP五层模型是上三层总结为应用层
1.应用层
2.传输层
3.网络层
4.数据链路层
5.物理层
【四】网络必知小知识
python
1.互联网----计算机彼此链接到一起的介质
2.互联网的目的----可以进行数据交互
3.上网的本质----通过网线去访问别的计算机的资源
其实我们的计算机也可以称之为是服务器/服务端(专门对外提供服务)
【五】网络设备介绍
python
1.交换机
让接入交换机的计算机可以彼此互联
2.局域网
由交换机组成的网络
3.广播与单播
广播:在交换机中一个计算机发送了消息,所有计算机都会接收到
单播:定向回复消息(利用mac地址--是每台计算机的身份证)
4.路由器
将局域网彼此链接起来支持数据交互
互联网可以看作是多个局域网链接起来
"""
在局域网中可以直接基于mac地址实现数据交互
但是可能会产生广播风暴:交换机中同一时间出现太多广播操作
mac地址只能用于局域网交互数据 不能跨局域网传输
"""
5.mac地址(网卡的物理地址)硬件地址
可以说每个网卡都是独一无二的
每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)
【六】详解OSI七层模型
python
1.物理层
利用物理介质发送高低电频,会变成0101
负责在物理媒介上传输原始比特流,包括电缆、光纤等。它主要关注硬件细节和传输介质的特性。
2.数据链路层
电信号的分组方式---》为了分组转发
负责将比特流组织成帧,进行物理寻址和错误检测。以太网协议和PPP协议是数据链路层的典型实现。
3.网络层
引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址
IP协议---》规定了每台接入互联网的计算机都必须有一个IP地址(取决于网线)
IPV4:点分十进制
最小:0.0.0.0
最大:255.255.255.255
不够用而出现了IPV6
IPV6:肯定够用
ps:IP地址可以唯一标识地球上独一无二的一台接入互联网的计算机
"""
IP地址分为公网IP和私网IP
公网IP是可以直接被浏览器访问到的 但是私网IP是不可以的
我们所有人的电脑默认使用的都是私网IP
公网IP需要花钱购买并且需要实名认证并备案
很多非法网站都是在国外注册备案
"""
python
4.传输层
建立端口到端口的通信
PORT协议(端口协议)------用于标识一台计算机上面正在运行的应用程序(端口号类似于手牌号)
"""
一台计算机上面可以运行很多数据交互软件 比如微信、qq、钉钉
它们都是从内存中获取数据 为什么不会错乱
就是因为端口协议的存在!!!
"""
端口号的范围是:0~65535
0~1024:系统经常使用的端口号
1024~8000:常用软件端口号
我们以后在写项目的时候推荐使用8000之后的端口
1.同一时间同一台计算机上面端口号不能冲突
2.端口号是动态分配的
eg:打开微信随机分配一个没有被使用的端口号8888
关闭微信重新打开那么会随机分配可能还是8888也可能是其他
"""
IP地址:用于标识全世界独一无二的一台接入互联网的计算机
PORT号:用于标识一台计算机上面的某一个应用程序
IP+PORT:能够标识全世界独一无二的一台计算机上面的某一个应用程序*****
我们日常生活使用浏览器访问的各个网址其实就是IP+PORT
www.baidu.com 好记
14.215.177.29:80 难记
ip:port
很多常见的服务端都不需要指定端口 只要访问了ip地址内部去会自动映射
域名解析
将好记的地址解析成真正的地址
www.baidu.com 解析 202.108.22.5:80
【七】TCP与UDP协议
python
1.tcp协议
面向连接,流式协议,可靠协议
基于TCP协议进行数据交互之前需要做一系列复杂的操作>>>:三次握手四次挥手
三次握手建立链接--》第一次客服端发送建立链接请求,(第二次服务端答复确认建立链接,第三次服务端发送建立链接)可以整合成一次,第四次客户端同意建立链接
eg:彼此挖通道
四次挥手断开连接---》第一次客服端发送断开请求,第二次服务端答复同意断开链接,第三次服务端发送断开链接,第四次客户端同意断开链接
eg:彼此切断通道
2.UDP协议
丢包协议、不可靠协议,因为他不会进行确认反馈
不需要建立双向通道 数据的传输速度快 但是可能会丢失
qq使用的就是UDP协议 所以有时候会产生数据丢失现象
但是我们可以在UDP协议的基础之上做很多额外的扩展来保证数据的安全
面试题
python
# TCP协议之所以比UDP协议可靠 就是因为有双向通道 对不对?
描述的不够精确 不对!!!
TCP协议之所以比UDP协议可靠 原因在于TCP协议发送消息有反馈机制
基于TCP发送的消息会在本地先保存该消息 如果对方确认收到才会删除
否则在一定的时间内会频繁的多次发送知道确认或者直到超时为止
UDP协议发送数据之后会立刻删除内存数据 不会保留