软件开发架构
什么是软件开发架构?
在编写项目的时候需要遵循代码层面上的一种规范
类似ATM,选课系统三层架构
C/S架构
C client
客户端 类似于各类的app软件
S server
服务端
服务端应该具备什么样的条件?
1.24小时不间断的提供服务
2.固定的地址
3.可以同一时间供多人访问
B/S架构
B broswer
浏览器
S server
服务端
b/s架构的本质也是c/s架构
c/s架构和b/s架构的优缺点
cs架构
优:可以在客户端中定制相关的服务
缺:必须要下载客户端
bs架构:
优:不用下载客户端,可以在浏览器内直接使用
缺:不能定制相关的服务
弥补:
cs架构和bs架构交替使用
可以方便用户使用,可以给自己全用户方便后期收割
架构发展趋势
统一接口原则
网络编程
什么是网络编程
基于互联网编写代码,程序可以实现远程数据交互
网络编程的目的
解决计算机的远程数据交互
网络编程的意义
为了编写一个cs架构的软件
网络编程的起源
军事 数据交互
网络编程的要求
早期 电话
台式电脑 网线
笔记本 网卡
总之就是必须要有网络
计算机能够实现远程数据交互前提?
基于物理连接介质
OSI七层协议
规定:
计算机在进行远程数据交互的时候(信息发送》》》信息获取)都必须经过的流程
1.七层
应用层
表示层
会话层
传输层
网络层
数据链路层
物理传输层
应 表 会 传 网 数 物
2.五层
应用层
传输层
网络层
数据链路层
物理传输层
应 传 网 数 物
3.四层
应用层
传输层
网络层
网络接口层
各层的特征
数据发出去:
应用层>>>物理传输层
数据收进来:
物理传输层>>>应用层
1.物理传输层:
保证物理连接介质的条件,可以理解为网线
2.数据链路层
1.规定了电信号的分组方式(二进制的形式,多少位一组)
2.规定了每台计算机上都必须有网卡
网卡上面有:1.电脑的以太网地址(身份证号) mac地址
他们都是由12位16进制数组成的
前六位:产商编号
后六位:生产流水线号
既然mac地址相当于电脑的身份证号 那么就可以根据该地址查找到计算机
3.网络层
IP协议
规定:任何接入互联网的计算机都必须有一个IP地址
IP地址:
IPV4:点分十进制
最小:0.0.0.0
最大:255.255.255.255
但是,ipv4太少,不够分,上网的人多
IPV6:
可以分很多很多
IP特征:
每个IP都自带定位
ip代理
4.传输层
PORT协议: 就是端口协议
端口协议:
规定了每台计算机都有一个端口号,端口号相当于计算机用来管理多个应用程序的标记
1.端口号范围:0-65535
2.端口号是动态分布的
3.同一时间同一台计算机端口号不能冲突
4.
0-1024 一般是操作系统内部需要使用的
1024-8000 一般是常见的软件已经使用了的
8000+ 我们平时写代码可以使用8000之后的端口号
IP+PORT
ip 用于标识任意一台接入互联网的计算机
port 用于标识一台计算机上的某个应用程序
ip+port 用于标识任意一台接入互联网的计算机上的某个应用程序
5.会话层
6.表示层
7.应用层
主要取决于程序员自己采用什么策略和协议
常见的协议有:
HTTP HTTPS FTP...
网址
什么是网址
网址就是url 统一资源定位符
url的本质
其实就是ip+port
域名解析和dns服务器
域名就是像 www.baidu.com 它的底层是ip地址
域名解析就是将域名解析为 ip+port
DNS主要用途是查找地址和连接设备
DNS通过 将域名与实际的服务器IP地址相连接 来让我们方便的访问网站