一、C/S架构:创建在局域网的基础上,须要安装客户端才能使用mysql
Client:客户端,好比QQ、微信等客户端redis
Server:服务端sql
优势:软件的使用稳定,节省网络资源mongodb
缺点:安装麻烦,用户体验差,软件每次更新,用户都须要从新下载或更新版本django
二、B/S架构:即浏览器和服务器架构模式,好比手机微信小程序,不须要下载客户端使用编程
Browser(本质上也是一个客户端):浏览器flask
Server:服务端小程序
优势:软件的使用方便,用户体现高,无需跟着软件的更新去下载(比较流行的架构)微信小程序
缺点:若是网络不稳定,使用就不稳定浏览器
客户端与服务端
服务端:24小时不间断提供服务
客户端:客户想要找服务时才会访问服务端
计算机与计算机之间沟通的介质——互联网协议,让全部的厂商生产的电脑都遵循这套协议,实现全部的电脑之间无障碍通讯,“互联网协议”是计算机界的中文,英文等
OSI七层协议
编写程序须要关注5层:(由下往上记)
一、物理层
获取到对象计算机的电信号数据
没法获取具体数据内容,须要将电信号数据(数据包)扔给数据链路层
二、数据链路层
以太网协议:
规定一套分组的方式,来获取电信号的真实数据(数据包)
以太网协议由head和data组成
head由18个字节组成,前6位是发送者,中间6位是接收者,后6位是数据类型
data是电信号的具体数据
每一台电脑都必需要有一个网卡(一个硬件,在电脑插入网线的地方)
每一台电脑网卡都有一个独一无二的一串数字:12位16进制的数字,称为“Mac地址”
mac地址:前六位是厂商号,后六位是流水号
mac地址做用:标识全世界上独一无二的计算机
以太网协议的工做方式:单播和广播
缺点:一、广播风暴;二、只能在局域网内实现通讯,没法跨局域网实现通讯
所以为了实现全世界的计算机之间的通讯有网络层
三、网络层
为了实现全世界的电脑之间通讯
IP地址(IP协议):由点分十进制的数字组成
IPV4:最小范围:0.0.0.0
最大范围:255.255.255.255
IP的版本:IPV4和IPV6,IPV4数量用完后相应出现IPV6
IP的做用:用于标识全世界某一台计算机的位置,局域网的位置
IP地址+mac地址:标识全世界某一个局域网内的,某一台计算机
arp协议:将IP地址与Mac地址绑定到一块儿了,全部能够经过IP地址找到Mac地址
四、传输层
tcp与udp都是基于“端口”实现通讯,有TCP协议和UDP协议
主要是软件与软件之间的通讯
port端口:用于标识计算机中某一个独一无二的软件
注意:
0—1024:禁止使用,操做系统在使用
使用8000以上的端口数
软件固定的端口号(不要碰): django: 8000 mysql: 3306 redis: 6379 flask: 5000 tomcat: 8080 mongodb: 27017
mac地址+IP地址+port端口:标识的是全世界范围内某一个局域网内某一台计算机的某一个软件
五、应用层
大佬们制定好的一套协议
http协议
ftp协议
自定义的协议
数据的传输是先从应用层到物理层进行包装,后传递给另外一台计算机解包是从物理层到应用层提取到数据
TCP协议:创建客户端与服务端之间的双向通道
标记位含义:
ACK:确认序号有效。
SYN:发起一个新链接。
FIN:释放一个链接。
三次握手,建链接:
反馈机制:
客户端往服务端发送请求,服务端必须有回应,一次请求必需要有一次响应
缺点:
洪水攻击:伪造大量的请求,往对方服务端发送,致使服务端响应跟不上,以致于瘫痪
防止洪水攻击:1. Linux系统有一个参数能够限制。 2. 半链接池listen,限制用户在同一个时间段内的访问数量
四次挥手,断开链接:
称为数据包协议
特色:
TCP协议与UDP协议的区别:
TCP协议:
优势:数据安全
缺点:传输速度慢,粘包
UDP协议:
优势:
缺点:数据不安全,容易丢失