软件开发架构
c/s架构
client (客户端)---------网络-----------server(服务端)
在c/s架构中,客户端和服务端通过网络进行通信,客户端向服务器发出请求,服务器对请求进行处理并返回结果给客户端,客户端再根据服务器返回的结果进行相应的操作
客户端弊端:用户使用必须下载客户端,当用户下载的客户端多的时候,电脑可能会收到影响
b/s架构
browser(浏览器)----------网络----------server(服务端)
在b/s架构中,浏览器向服务器发出请求,服务器对请求进行处理并返回结果给服务器,浏览器再根据服务器返回的结果进行相应的操作,b/s架构中,浏览器就是客户端,不需要安装任何应用,通过浏览器就可以访问应用程序
OSI七层协议
用户感知到的只是最上面一层应用层,自上而下每层都依赖于下一层,所以我们从最下一层开始切入,比较好理解
每层都运行特定的协议,越往上越靠近用户,越往下越靠近硬件
1.物理层
主要负责发送高低电压(电信号),高电压对应数字1,低电压对应数字0
2.数据链路层
物理层做不了分组,数据链路层来做分组,数据链路层统一使用以太网协议,一个以太网数据称为 数据帧 (报头hesd + 数据data)
head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送
3.网络层
使用的是IP协议,规定每一个介入互联网计算机都必须有一个IP地址,广泛采用的IPv4(范围0.0.0.0 - 255.255.255.255) 除了IPv4还有IPv6地址,表现形式为十六进制
IP数据包 最长只有1500字节,超过1500字节,就需要分割成几个以太网数据包分开发送
公网IP:需要购买,买过后的IP是固定
内网IP:以192.168开头的IP的地址,也叫局域网
网络的划分
广域网:主要特点是覆盖面广,跨越较大的地理范围,由多个地理不同的局域网,城域网或其他广域网相互连接而成
局域网:主要特点是覆盖面积较小,距离较近,一般使用以太网等局域网协议进行连接,局域网内的计算机可以相互通信和共享资源
本地回环地址:127.0.0.1是一个预留地址,通常不会分配给任何端口,被用作在同一台计算机上进行内部通信和测试
4.传输层
使用的是TCP协议和UDP协议,也称为端口协议,0-65535之间的数字
0-1024之间的事默认系统使用的,我们不要使用,以免发生端口冲突
1024-8000之间的端口,一般是常用软件的端口
如果自己开发软件,端口最好使用8000之后的
TCP协议
又称为靠谱协议,因为TCP协议传输数据的时候,是需要建立双向通道的
如何建立双向通道:三次握手和四次挥手,在三次握手过程中,客户端和服务端互相确认对方是否能够接收数据,在四次挥手过程中,客户端和服务端需要分别发送FIN和ACK报文,以便正常关闭连接并释资源
tcp报文
tcp三次握手和四次握手:
UDP协议
不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。
5.会话层
建立,管理,终止会话。(在五层模型中已经合并到应用层)对应主机的进程,指本地主机与远程主机正在进行的会话
6.表示层
数据的表示,安全,压缩。(在五层模型中已经合并到应用层)格式有jpeg,ASCII等加密格式
7.应用层
常见的客户端应用协议:
HTTP协议:超文本传输协议,用于web浏览器和web服务器之间的通信
FTP协议:文件传输协议,用于文件在客户端和服务器之间的传输
SMTP协议:简单邮件传输协议,用于电子邮件的发送和传输
POP3协议:邮局协议,用于电子邮件的接收
IMAP协议:internet消息访问协议,用于电子邮件的接收和管理
常见的浏览器应用协议:
HTTP协议:超文本传输协议,用于web浏览器和web服务器之间的通信
HTTPS协议:安全超文本传输协议,用于web浏览器和web服务器之间的加密通信
FTP协议:文件传输协议,用于文件在客户端和服务器之间的传输
WebSocket协议:用于实现双向通信的协议,可以在浏览器和服务器之间建立长连接,实现实时通信