软件开发架构
-
思考
1.什么是软件开发架构?
编写项目之前需要遵循的代码层面上的规范(代码运行的流程,环境,步骤) eg:回想ATM三层架构,选课系统三层架构
-
软件开发架构
c/s架构
c: 客服端 (client)
s: 服务端 (server)
其实我们在计算机上下载的各种互联网的app软件,本质上都是客户端
客户端可以看作是即将去消费的客人
服务端可以看作是给你提供服务的店服务端的特征: 1.可以24小时不间断的提供服务 2.是固定的地址 3.可以同一时间服务很多人
b/s架构
b: 浏览器 (broswer)
s: 服务器 (server)
其实b/s架构的本事也是c/s架构
通过浏览器来充当各个服务端的客户端 用于想要体验服务不需要下载指定的客户端 -
架构优劣势
架构 优点 缺点 c/s架构 下载对应的客户端,可以在客户端软件内高度定制相关服务 使用必须先下载客户端,比较繁琐 b/s架构 不需要下载客户端,能够快速的体验服务 定制一些功能的时候较为繁琐
架构发展趋势
申明一下:上述架构与我们之前所学的三层架构其实一样
发展趋势:统一接口原则
微信
eg:里面有很多小程序,可以直接体验其他服务
支付宝
里面有很多的小程序,可以直接体验其他服务
后续就是c/s和b/s交错使用,避免各自的劣势
ps:可以方便用户使用,更重要的是可以给自己圈用户便于后期割韭菜
网络编程简介
-
思考
1.如何理解网络编程
基于互联网编写代码,程序可以实现远程数据交互
2.网络编程的目的
网络编程的本质是为了解决计算机之间的远程数据交互
3.网络编程的意义
学习完网络编程之后,我们就可以编写一个c/s架构的软件
-
网络编程的起源
任何先进的技术一般都是起源于军事 网络编程是漂亮国军方开发
-
网络编程的要求
1.早期的电话(必须要有电话线)
2.打屁股电脑(必须要有网线)
3.笔记本电脑(必须要有网卡)计算机之间要想实现远程数据交互 首要条件就是要有物理连接介质
OSI七层协议
规定了计算机涉及到数据远程交互的时候 必须要经过的部件/流程
所有的计算机在涉及到网络传输这块必须要有相同的零部件
OSI各层功能简介:
层次 | 功能 |
---|---|
应用层 | 用户的应用程序和网络之间的接口老板 |
表示层 | 协商数据交换格式 相当公司中简报老板、替老板写信的助理 |
会话层 | 允许用户使用简单易记的名称建立连接 相当于公司中收寄信、写信封与拆信封的秘书 |
传输层 | 提供终端到终端的可靠连接 相当于公司中跑邮局的送信职员 |
网络层 | 使用权数据路由经过大型网络 相当于邮局中的排序工人 |
数据链接层 | 决定访问网络介质的方式,在此层将数据分帧,并处理流控制。本层 指定拓扑结构并提供硬件寻 址。相当于邮局中的装拆箱工人 |
物理连接层 | 将数据转换为可通过物理介质传送的电子信号 相当于邮局中的搬运工人 |
详情请见: OSI七层协议
网络相关名词
1.交换机
能够让接入交换机的多台计算机实现彼此互联
2.以太网通信(MAC通信)
原理:
有了交换机之后,根据电脑的mac地址就可以实现数据交互
广播:现在交换机中吼,所有的交换机的设备都能听到
单播:但是只有被查找的设备才会回复相关信息缺陷:
1.mac地址通信仅限于局域网
2.接入交换机的设备过多,可能会造成广播风暴(类似于所有的人同时吼)局域网
有某个固定区域组成的网络
广域网可以看作是更大的区域的局域网
路由器
将多个局域网连接到一起的设备
各层特征
-
网络层
网络层的任务就是选择合适的网间路由和交换结点,数据包是包含在帧中,包中封装了网络层包头,如源站点、目的站点信息等,如果你还在讨论一个ip地址,那么你是在这层的问题。此外还有一些路由协议的地址解析协议(ARP),网络层还可以实现拥塞控制、网际互连等,这一层,数据的单位为数据包。网络协议代表有IP IPX RIP OSPF 等
IP协议:
规定了任何接入互联网的计算机都必须有一个IP地址(护照)
IP地址:
IPV4:点分十进制
最小: 0.0.0.0
最大: 255.255.255.255
ps:随着社会的发展 同时能够上网的人越来越多 上述地址不够分IPV6:
能够给地球上每一粒沙分一个IP地址
IP特征
每个IP都自带定位 ps:ip代理!!!
-
传输层
PORT协议
端口协议:规定了一台计算机上的每一个正在运行的应用程序都必须有一个端口号,端口号相当于是计算机用来管理多个应用程序的标记
端口特征
1.端口号范围:0~65535
2.端口号是动态分配的
3.同一时间同一台计算机端口号不能冲突
0-1024:一般是操作系统内部需要使用的
1024-8000:一般是常见的软件已经使用了
8000+:我们平时写代码可以使用8000之后的端口号IP+PORT
IP:用于标识全世界任意一台接入互联网的计算机
PORT:用于标识一台计算机上的某个应用程序
IP+PORT:用于标识全世界任意一台接入互联网的计算机上的某一个具体的程序 -
思考
1.什么是网址?
网址(URL):统一资源定字符
2.url的本质
其实就是IP+PORT(ip:port) eg: www.baidu.com