一、软件开发的架构
我们了解的涉及到两个程序之间通讯的应用大致可以分为两种:
第一种是应用类:qq、微信、网盘、优酷这一类是属于需要安装的桌面应用
第二种是web类:比如百度、知乎、博客园等使用浏览器访问就可以直接使用的应用
这些应用的本质其实都是两个程序之间的通讯。而这两个分类又对应了两个软件开发的架构~
1.C/S架构
C/S即:Client与Server,中文意思:客户端与服务端架构,这种架构也是从用户层面(也可以是物理层面)来划分的
这里的客户端一般泛指客户端应用程序EXE,程序需要先安装后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大。
优点:软件的使用稳定
节省网络资源
缺点:安装麻烦,用户体验差
软件的每一次更新,用户都需要重新下载或更新版本
2.B/S架构
B/S即:Browser与Server,中文意思:浏览器端与服务器端架构,这种架构是从用户层面来划分的。
Browser浏览器,其实也是一种Client客户端,只是这个客户端不需要大家去安装什么应用程序,只需在浏览器上通过HTTP请求服务器端相关的资源(网页资源)
优点:软件的使用方便
无需跟着软件更新去下载
缺点:如果网络不稳定,软件的使用就不稳定
趋势:B/S架构流行,用户体验高
二、网络概念
问题:网络到底是什么?计算机之间是如何通信的?
语言是人与人之间沟通的介质!
协议是计算机与计算机之间沟通介质!
如何远程通信
物理连接介质
- 电话--—电话线
- 纯屏电脑-–-–网线
- 笔记本电脑-–-–网线,网卡
电脑与电脑通信:互联网协议
三、互联网协议(OSI七层协议)
互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层
此时需要关注的是5层: 由下到上记
- 应用层
- 传输层
- 网络层
- 数据链路层
- 物理层
物理层
获取计算机的电信号数据(100101001)
问题:无法获取具体数据内容,将电信号数据扔给数据链路层
数据链路层
我们要知道数据是什么?
我们要知道数据是给谁的?
以太网协议:
获取电信号真实数据
head:-18个字节
-6:发送者
-6:接受者
-6:数据类型
data:电信号具体的类型
每台电脑必须要有一个网卡(电脑插网线的地方,里面连着一个网卡)
网卡:每块网卡都会有一串世界上独一无二的数字 MAC 地址
12位16进制的数字,6位产品好,6位流水号
MAC地址作用:标识世界上一台独一无二的计算机
以太网协议的工作方式:
单播:
广播:只能在局域网内实现通信, 无法跨局域实现通信
总结:MAC地址:标识全世界上一台独一无二的计算机
网络层
实现全世界某一台计算机之间的通信
IP地址(IP协议):
点分十进制的数字组成
130.123.31.55
最小范围:0.0.0.0
最大范围:255.255.255.255
IP的版本:
IPV4
IPV6
IP的作用:用于标识全世界某一台计算机的位置,局域网的位置
总结:IP地址 + MAC地址:
标识全世界某一个局域网内的某一台计算机
传输层
TCP与UDP都是基于“端口”实现通信的
TCP:
UDP:
主要是软件与软件之间进行通信
port端口:
用于标识计算机某一个独一无二的软件
总结:IP地址 + MAC地址 + PORT端口:
标识的是全世界范围内某一个局域网内某台计算机上的某一个软件
应用层
大佬们定制好的一套牛X的协议
HTTP协议
FTP协议
自定义的协议