软件开发架构
-
c/s架构
c:client 客户端
s:server 服务端
"""
将客户端看成是去店里消费客人
将服务端看成是提供服务的店面
eg:手机各种app其实就是各大软件的客户端
服务端需要具备的三大特征
1.24小时不间断提供服务(24小时监听)
2.固定的地址(IP地址)
3.能够服务多个用户(高并发)
"""
-
b/s架构
b:browser 浏览器
s:server 服务器
"""
浏览器统一充当各个服务端的客户端
本质:bs架构本质上也是cs架构
"""
统一:各大互联网巨头正在做的事情
eg:
微信小程序(微信提供开发微信小程序的软件)
支付宝小程序(各大程序接口)
网络编程学习完就可以开发cs架构的软件(简易版本)
并发编程、前端、数据库、后端框架就可以开发bs架构软件(任何类型的软件)
网络编程
网络编程其实研究的就是程序之间的数据通信
由来:
基于远程传输数据的技术最早诞生于美国军方
远程数据传输发展史(民用)
1.有线电话 电话线互联
2.无线电话 信号发射器
3.大屁股电脑 网线
4.笔记本电脑 网卡
...
"""
要想实现远程数据交互的前提是必须要有物理连接介质
"""
除了有物理连接介质之外还应该有一些能够保证数据彼此无障碍交互的东西(标准)
OSI七层协议
OSI七层协议
应用层
表示层
会话层
传输层
网络层
数据链路层
物理连接层
应用层
传输层
网络层
数据链路层
物理连接层
"""
从小往上研究
"""
物理连接层
提供物理连接接口
网线口、无线网卡
数据链路层
1.规定了电信号的分组方式
2.以太网协议
规定了计算机必须有一块网卡
并且网卡上面要有一个固定串数字
12位16进制数
前六位:产商编号
后六位:流水线号
上述的数字也称之为计算机的mac地址(类似于身份证号)
补充:常见硬件
局域网:有交换机组成的网络
互联网:可以简单的理解为是多个局域网之间彼此互联
"""
基于mac地址的数据传输
1.广播风暴
2.mac地址不能跨局域网传输
"""
路由器:能够连接多个局域网并实现局域网之间的数据传输换机:能够使接入该机器的所有计算机之间彼此互联
网络层
IP协议:规定了接入互联网的计算机都必须有一个IP地址用于唯一标识
IPV4版本
最小 0.0.0.0
最大 255.255.255.255(255的四次方)
IPV6版本
能够表示出地球上每一粒沙子
公网IP与私网IP
公网IP需要花钱购买并申请
私网IP自带的但是无法直接基于互联网访问
"""
arp协议
将IP地址转换成mac地址(基于网络请求)
"""
传输层
TCP协议 UDP协议
端口协议
范围:0~65535
特性:动态分配
eg:第一次运行微信 系统随机取一个端口号2022
然后关闭微信重新启动 系统随机取一个端口号
端口号基本使用
0~1024系统默认需要使用的端口号
1024~8000常见软件端口号
个人开发的软件一般使用8000之后的端口号
"""
端口号在同一台计算机同一时刻不能重复
"""
总结
ip+port 127.0.0.1:8080
"""
能够唯一标识世界上某一台接入互联网的计算机上面的某一个正在运行的应用程序
"""
应用层
都是人为自定义的协议标准 可遵循可不遵循
HTTP协议 FTP协议 ...