软件开发架构
规定了程序的请求逻辑和功能分块
1 c/s架构
Client:客户端
Server:服务端
我们使用计算机下载下来的一个个APP本质是各大互联网公司的客户端软件
通过这些客户端软件我们就可以体验到各个互联网公司给我们提供的服务
下载淘宝客户端 打开就可以体验淘宝服务端提供的购物服务
下载抖音客户端 打开就可以体验抖音服务端提供的视频服务
在一般情况下客户端与服务端交互需要互联网 但是有些不需要(因为客户端和服务端都在一台计算机上)
客户端:即将要去消费的客人
服务端:给客人提供服务的店
作为服务端必备二点多个条件
1.24H不间断提供服务
2.固定的地址
3.能够服务多个客人(高并发)
2 B/S架构
Browser:浏览器
Server:服务器/端
浏览器可以充当所有服务端的客户端
B/S架构本质还是C/S架构
C/S架构
优势:不同公司的客户端由不同公司独立开发 可以高度定制化客户端功能
劣势:需要下载才能使用
B/S架构
优势:不用下载直接访问
劣势:无法高度定制化 并且需要遵守很多规则
架构总结
ATM:三层架构
选课系统:三层架构
本质也是属于软件开发架构的范畴
软件设计的大方向都是统一接口
比如微信小程序 支付宝小程序
网络编程前戏
* 网络编程:基于网络编写代码 能够实现数据远程交互
* 我们学习网络编程的目的是能够开发CS架构的软件
* 网络编程的最早起源于美国军事领域 想实现计算机之间数据交互 最早的时候只能用硬盘拷贝 随后发明网络编程
* 网络编程必备条件
数据的远程交付
1.早期的电话 电话线
2.早期的大屁股电脑 网线
3.笔记本电脑 移动电话 网卡
实现数据的远程交互必备的基础条件是物理连接介质
OSI七层协议简介
* OSI七层协议:规定了所有的计算机在远程数据交互的时候必须经过相同的处理流程,在制造过程中必须拥有相同的功能硬件
应用层
表示层
会话层
传输层
网络层
数据链路层
物理链接层
* 常见的整合之后五层或者四成
应用层
传输层
网络层
数据链路层
物理连接层
应用层
传输层
网络层
网络接口层
接收网络消息 数据由下往上传递
发送网络信息 数据由下往上传递
OSI七层协议之物理连接层
主要用于确保计算机之间的物理连接介质 接受数据(bytes类型 二进制)
OSI七层协议之数据链路层
1.规定了电信号的分组方式
2.以太网协议
规定了计算机在出厂的时候都必须有一块网卡 网卡上有一串数字
该数字相当于是计算机的身份证号码是独一无二的
该数字的特征:12位16进制数据
前6位产商编号 后6位流水线号
该数字也称为:以太网地址/MAC地址
网络相关专业名词
- 计算机之间要想实现数据交互必须要连接到一起
- 交换机:能够将所有接入交换机的计算机彼此互连起来
- 广播:首次查找接入同一个交换机的其他计算机 需要朝交换机里面说一下
- 单播:首次被查找的计算机回应查找他的计算机 并附带自己的mac地址
- 广播风暴:接入同一台交换机的多台计算机同时发广播
- 局域网:可以简单的理解为有单个交换机组成的网络 在局域网内可以直接使用mac地址通信
- 广域网:可以简单的理解为范围更大的局域网
- 互联网:由所有的局域网和广域网连接到一起形成的网络
- 路由器:不同的局域网计算机之间是无法直接实现数据交互的 需要路由器连接
OSI七层协议之网络层
IP协议:规定了所有接入互联网的计算机都必须有一个IP地址 类似于身份证号
mac地址是物理地址可以看成永远无法修改
IP地址是动态分配的 不同的场所IP是不同的
IP地址特征:
ipv4 点分十进制
0.0.0.0
255.255.255.255
ipv6 能够给地球上的每一粒沙子分一个ip地址
IP地址可以跨局域网传输
ip地址可以用来标识全世界独一无二的一台计算机
OSI七层协议之传输层
PORT协议(端口协议)
用来标识一台计算机上面某一个应用程序
范围:0-65535
特征:动态分配(洗浴中心的号码牌)
建议:
0-1024 系统默认需要使用
1024-8000 常见软件的端口号
8000之后的
URL:统一资源定位符(网址)
网址本质是有ip和port组成的
IP+PORT:能够定位全世界独一无二的一台计算机上面的某一个程序
域名解析:将网址解析成IP+PORT
我们之所以不直接使用IP+PORT的原因是太难记 所以就发明了域名也就是网址
IP+PORT 实际使用冒号连接
114.55.205.139:80