http、https、tcp与udp的简单了解

由于被人问到http和https的区别时,自己顿时一脸懵逼,特此写文记录。

get 和 post 不同

  • get 参数url可见,post不可见
  • get 发一个包,post发两个包
    • get 没body只发一次,post 将一个包分两次(header和body分开)发送

http 和 https 不同

  • https 是 http的安全版,在http下加入ssl层,需要到ca申请证书
  • http 明文未加密,https加密
  • 端口不同http 80,https 443

tcp三次握手

  • 连接建立(SYN,SYN-ACK, ACK)
  • 连接终止(FIN,ACK 、FIN,ACK)

tcp 和 udp 不同

  • tcp 面向连接,udp 面向非连接
  • udp 可能丢包,传输不可靠,tcp 传输可靠
  • udp 速度 比 tcp 快
  • udp 适合传输大量数据,tcp 少量数据
  • udp 支持 1对1,1对n,n对1,n对n,tcp 只支持 1对1
  • udp 没控制机制,tcp 有控制机制

http1.0 和 http1.1 不同

  • http1.1 支持长连接、请求的流水线处理,http1.0 只有短连接
    • 长连接 用 请求头Connection:Keep-Alive时,保持连接;Connection:close,关闭连接
  • http1.1 支持 身份认证、状态管理、cache缓存机制
  • http1.1 新增 报文头host字段
  • http1.1 新增 100状态码(节约带宽)
  • http1.1 发送信息分割成多个片段,每个块附带长度,结束长度为0,避免缓冲整个信息造成过载

    http2.0

  • header 压缩
  • 服务器推送
  • 新的二进制格式
  • 多路复用
  • 性能较1.x大幅提升