TCP、Http网络知识

396 阅读2分钟

七层模型

  • 应用层:为应用程序提供服务
  • 表示层:数据格式转化、数据加密
  • 会话层:建立、管理和维护会话
  • 传输层:建立、管理和维护端到端的连接
  • 网络层: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主要用于对告诉传输和实时性有较高要求的通信或广播通信