七层模型
- 应用层:为应用程序提供服务
- 表示层:数据格式转化、数据加密
- 会话层:建立、管理和维护会话
- 传输层:建立、管理和维护端到端的连接
- 网络层:IP地址及路由选择
- 数据链路层:提供介质访问和链路管理
- 物理层
TCP三次握手和四次挥手
三次握手
- 客户端发送SYN数据包给服务端
- 服务端发送ACK数据包给客户端
- 客户端再将ACK数据包发给服务端
四次挥手
- 客户端发送FIN给服务端
- 服务端发送ACK给客户端
- 服务端发送FIN给客户端请求关闭连接
- 客户端发送ACK给服务端
HTTP
超文本传输协议
特点
- 无状态
- 无连接
- 基于请求和响应
- 简单快速灵活
- 通信使用明文、请求和响应不会对通信方进行确认、无法保护数据的完整性
HTTP1.x和2.0区别
- 1.x基于文本协议的各式解析;2.0的协议解析是二进制格式
- 1.x一个连接一个请求;2.0一个连接多个请求
- 1.x请求头需要携带大量信息;2.0使用encode减少传输请求头大小
HTTPS
- 使用https的url访问,要与Web服务器建立SSL连接
- 服务端收到请求后,会将网站的证书信息(公钥)发给客户端
- 客户端与服务器协商连接的安全等级
- 客户端根据安全等级简历会话秘钥,利用公钥将会话秘钥加密传送给网站
- 服务端利用自己的私钥解密出会话秘钥
- 服务端利用会话秘钥加密与客户端之间的通信
UDP
- TCP有连接,UDP无连接:TCP要三次握手,UDP直接发送
- UDP支持一对多,多对多,多对一:单播,多播,广播
- 不备份数据,不关心对方是否接收到数据
- 发送速度恒定,网络不好会丢包
- TCP面向字节流,UDP面向报文
- UDP不保证包的顺序
TCP用于传输层有必要实现可靠传输的情况
UDP主要用于对告诉传输和实时性有较高要求的通信或广播通信