软件开发架构与网络编程
一、软件开发架构
1.软件开发构架
软件开发构架:在编写项目之前需要遵循的代码层面上面的规范(运行流程,环节,步骤)
2.软件开发架构对的分类
1.c/s:架构:
client/server 客户端/服务端
eg:客户端就是各种APP软件,用户可以通过客户端体验对应服务器的功能
2.b/s:架构:
broswer/server 浏览器/服务端
eg:用户通过浏览器来体验对应服务器的服务功能,不需要下载APP客户端
# 服务端具备的特征:
24小时不间断的提供服务
固定的网址,不经常改变
可以同一时间服务很多人
3.两种架构的优劣
cs架构:
优:通过下载客户端APP可以在APP软件中高度定制相关服务
劣:需要下载客户端的APP,占内存也比较繁琐
bs架构:
优:不需要下载客户端,直接通过浏览器就可以快速体验服务
劣:定制一些功能的话较为繁琐
4.架构的发展趋势
发展趋势必然是统一接口原则,如微信,支付宝的小程序,可以直接体验其他的服务,避免了各自的优劣
二、网络编程简介
1.网络编程
基于互联网编写的代码,能够实现数据的远程交互
2.网络编程的本质
本质就是解决计算机之间数据远程交互,最早起源于美国军方
3.网络编程的要求
计算机之间实现数据远程传输的必要条件就是得通过物理连接介质
三、OSI七层协议
1.OSI七层协议
OSI七层协议:规定了所有计算机在远程数据交互的时候必须经过相同的处理流程、在制造过程中必须拥有相同的功能硬件
2.OSI七层协议详细简介
应用层
表示层
会话层
传输层
网络层
数据链路层
物理连接层
# 记忆技巧:应、表、会、传、网、数、物
整合为五层:
应用层、传输层、网络层、数据链路层、物理连接层
继续整合为四层:
应用层、传输层、网络层、网络接口层
四、网络相关名词
1.交换机:
能够让接入交换机的计算机实现彼此互联
2.以太网:
就是现实世界中最普遍的一种计算机网络,它规定了包括物理层的连线、电子信号和介质访问层协议的内容。
3.广播:
接入同一台交换机的多台计算机同时发广播
4.单播:
首次被查找的计算机回应找他的计算机,并附带自己的mac地址
mac地址:(在命令提示符下输入命令“ipconfig /all”回车之后就会显示当前计算机的一些网络信息,其中“Physical Address”字样的这一项就是当前计算机中网卡的 MAC地址)
5.广播风暴:
接入同一台的交换机的多台计算机同时发广播
6.局域网:
有固定区域组成的网络,局域网内可以直接使用mac地址通信(局域网可以理解为有单个交换机组成的网络)
7.广域网:
可以理解为范围更大的局域网
8.互联网:
由所有的局域网,广域网理解到一起形成的网络
9.路由器:
不同的局域网计算机之间是无法直接实现交互的,交互需要路由器连接
五、OSI七层协议之物理连接层
主要用于确保计算机之间的物理连接介质,接收数据(bytes类型,二进制)
六、OSI七层协议之数据链路层
1.规定了电信号的分组方式
2.规定了每台计算机必须有一块网卡
由12到16位组成,前6位是产商编号,后6位是生产流水线号
该数字也称:以太网地址/mac地址
七、OSI七层协议之网络层
IP协议:规定了所有接入互联网的计算机必须有一个IP地址,类似于我们的身份证
mac地址是物理地址可以看成永远无法修改
IP地址是动态分配的 不同的场所IP是不同的
IP地址特征:
IPV4:点分十进制
最小: 0.0.0.0
最大: 255.255.255.255
IPV6:能够给地球上每一粒沙分一个IP地址
# IP地址可以用来标识全世界独一无二的一台计算机
八、OSI七层协议之传输层
1.PORT协议(协议):规定了一台计算机上的每一个正在运行的应用程序都必须有一个端口号,端口号用来管理多个应用程序的标记
端口号特征:
1.端口号的范围:0-65535
2.端口号是动态分配的
3.同一时间同一台计算机端口号不能冲突
4.端口号范围使用:
0-1024:一般是操作系统内部需要使用的
1024-8000:一般是常见的软件已经使用了
8000+:我们平时写代码可以使用8000之后的端口号
2.URL:统一资源定位符(网址)
URL的本质就是IP + PORT
3.IP+PORT:能够定位全世界独一无二的一台计算机上面的某一个应用程序
IP+PORT应用时加冒号连接
eg: 114.55.205.139:80