Day37网络编程
文章目录
1、软件开发架构
什么是软件开发架构
编程写项目之前需要遵循代码层面上的规范(代码运行的流行 环节 步骤)
1.1、两类软件开发架构
1.1.1、C/S架构
-
C:client 客户端
-
S:server 服务端
计算机上下载的各个互联网公司的app软件 本质其实是客户端 下载一个个客户端的目的就是为了体验对应服务端的服务
例如:
下载淘宝就是为了体验淘宝服务端提供的购物服务
下载抖音就是为了体验抖音服务端提供的视频服务
客户端可以看成是即将去消费的客人
服务端可以看成是给你提供服务的店
服务端应具备的特征
- 24小时不间断提供服务
- 固定的地址(不能经常改变)
- 可以同一时间服务很多人
架构优劣势
优势:下载对应应用的客户端 可以在客户端软件内高度定制相关服务
劣势:使用必须先下载客户端 比较频繁
1.1.2、B/S架构
- B:broswer 游览器
- S:server 服务器
b/s架构本质也是c/s架构
通过游览器来充当各个服务器的客户端 用于想要体验服务不需要下载指定的客户端
架构优劣势
优势:不需要下载客户端 能够快速体验服务
劣势:定制花里胡哨的功能比较繁琐
2、架构发展趋势
发展趋势:统一接口原则
微信
里面有很多小程序 可以直接体验其他服务
支付宝
里面有很多小程序 可以直接体验其他服务
后续就是cs和bs交错使用 避免各自的劣势!!!
可以方便用户使用 更重要的是可以给自己圈用户便于后期收割
3、网络编程简介
如何理解网络编程
基于互联网编写代码 程序可以实现远程数据交互
网络编程的目的
网络编程的本质是为了解决计算机之间远程数据交互
网络编程的意义
学习完网络编程之后 我们就可以编写一个C/S架构软件
3.1、网络编程起源
任何先进的技术一般都来源于军事
网络编程由美国军方开发
没有网络编程的时候 如果两台计算机之间要交互数据
只能使用硬盘拷贝 如果一个人在中国一个人在非洲
那就拿着硬盘坐飞机
网路过编程的要求
- 早期的电话
必须要有电话线 - 大屁股电脑
必须要有网线 - 笔记本电脑
必须要有网卡
计算机之间想要实现远程数据交互 首要条件就是要有物理层连接介质
4、OSI七层协议
规定了计算机涉及到数据远程交互的时候 必须要经过的部件/流程
所有计算机在涉及到网络传输这块必须要有相同的零部件
OSI七层协议
OSI七层协议 |
---|
应用层 |
表示层 |
会话层 |
传输层 |
网络层 |
数据链路层 |
物理连接层 |
记忆技巧
应表会传网数物
针对上诉七层 我们也可以合并为五层
OSI优化为五层 |
---|
应用层 |
传输层 |
网络层 |
数据链路层 |
物理连接层 |
优化为四层
优化为四层 |
---|
应用层 |
传输层 |
网络层 |
网络接口层 |
每一层都有各自的功能和规范
5、各层的特征
数据发送出去的时候是 从上往下走
数据接收回来的时候 是从下往上走
我们按照从下往上的顺序研究
-
物理连接层
保证物理连接介质的条件 传递电信号(主要研究网络线的情况) -
数据链路层
-
规定了电信号的分组方式
-
规定了每台计算机都必须要有一块网卡
网卡上必须有一串记录>>>:电脑以太网地址 :mac地址
以太网地址/mac地址:由12位16进制数组成的
前六位:产商编号
后六位:生产流水线号
即然mac地址相当于电脑的身份证号 也就意味着 可以根据该地址查找计算机(可以基于mac地址实现数据交互)
-
6、网络相关名词
交换机
能够让接入交换机的多台计算机实现彼此互联
以太网通信(mac通信)
原理:
有了交换机之后 根据电脑的mac地址 就可以实现数据交换
广播:先在交换机中吼 所有接入交换机的设备都能收到
单播:只有被查找设备 才会回复相应信息
缺陷
mac地址通信权限于局域网
接入交换机的设备过多 可能会造成广播风暴
广播风暴:类似于所有人同时吼!!!
局域网
有某个固定区域组成的网络
广域网可以看成是更大区域的局域网
路由器
将多个局域网连接到一起的设备
7、各层特征
7.1、网络层
IP协议
规定了任何接入互联网的计算机都必须要有一个IP地址
IP地址
IPv4:点分十进制
最小:0.0.0.0
最大:255.255.255.255
ps:随着社会发展 同时能够上网的人越来越多 上述地址不够分了
IP特征
每个IP都自带定位
ps:ip代理!!!
7.2、传输层
PORT协议
端口协议:规定了一台计算机上的每一个正在运行的应用程序都必须有一个端口号,端口号相当于是计算机用来管理多个应用程序的标记
端口号特征
-
端口号范围:0-65535
-
端口号是动态分配的
-
同一时间同一台计算机端口号不能重提
-
0-1024:一般是操作系统内部需要使用的
1024-8000:一般是常见的软件已经使用了
8000+:我们平时写代码可以使用8000之后的端口号
IP+PORT
IP:用于标示全世界任意一台接入互联网的计算机
PORT:用于标识一台计算机上的某个应用程序
IP+PORT:用于标识全世界任意一台接入互联网的计算机上的某一个具体的程序
什么是网址
网址(URL):统一资源定位符
url的本质
其实就是IP+PORT(IP:port)
www.baidu.com >>>> 124.12.11.232