详解HTTP1.0 HTTP1.1 HTTPS HTTP/2 websocket的区别

HTTP到现在有3个版本: HTTP 1.0、HTTP 1.1、HTTP/2、HTTPS是加上ssl的HTTP, websocket是H5的一下实现API,支持持久的连接,是CS架构的重要协议,它由HTTP发起,upgrade为websocket。

1. HTTP1.0

  • http1.0定义了最初的http规范,包括header,body的格式等,它不支持持久连接,每次连接必须是重新发起,效率比较低。
    详解HTTP1.0 HTTP1.1 HTTPS HTTP/2 websocket的区别_第1张图片
    mOzi8bD.png
详解HTTP1.0 HTTP1.1 HTTPS HTTP/2 websocket的区别_第2张图片
phN7Xvv.png

2. HTTP1.1

  • HTTP 1.1是实现了持久化连接。它可以连接一次,多次使用,效率比HTTP1.0高
    详解HTTP1.0 HTTP1.1 HTTPS HTTP/2 websocket的区别_第3张图片
    F8mk0F8.png
  • HTTP 1.1增加host字段
  • HTTP 1.1中引入了Chunked transfer-coding,范围请求,实现断点续传(实际上就是利用HTTP消息头使用分块传输编码,将实体主体分块传输)
  • HTTP 1.1管线化(pipelining)理论,客户端可以同时发出多个HTTP请求,而不用一个个等待响应之后再请求,但是这种模式会有线头阻塞,没有改变阻塞问题,浏览器默认没开启(理论实现)


    详解HTTP1.0 HTTP1.1 HTTPS HTTP/2 websocket的区别_第4张图片
    bsPBD7B.jpg

3. HTTP/2

  • HTTP/2实现了多路复用,解决了HTPP1.1线头阻塞的问题,真正意义上实现了管线化的理论,大幅度的提升了web性能
    详解HTTP1.0 HTTP1.1 HTTPS HTTP/2 websocket的区别_第5张图片
    TZPJgOc.gif

现在可以这样


详解HTTP1.0 HTTP1.1 HTTPS HTTP/2 websocket的区别_第6张图片
cVJ5KQk.png
  • HTTP2将原来的传输文本封装成二进制帧数据发送


    详解HTTP1.0 HTTP1.1 HTTPS HTTP/2 websocket的区别_第7张图片
    9oOSrWV.png

    HTTP2连接上传输的每个帧都关联到一个“流”,这样可以分段传输。


    详解HTTP1.0 HTTP1.1 HTTPS HTTP/2 websocket的区别_第8张图片
    pR5Py00.png
  • 使用HPACK对HTTP/2头部压缩
    减少header头部的大小
  • 服务器推送
    • HTTP2推送资料:https://segmentfault.com/a/1190000015773338
  • 流优先级(Stream Priority)它被用来告诉对端哪个流更重要

https

  • HTTPS其实就是在HTTP协议下多加了一层SSL协议


    详解HTTP1.0 HTTP1.1 HTTPS HTTP/2 websocket的区别_第9张图片
    L9JFpys.png
  • 加密过程


    详解HTTP1.0 HTTP1.1 HTTPS HTTP/2 websocket的区别_第10张图片
    7rSoydd.png

    (1).用户向web服务器发起一个安全连接的请求
    (2).服务器返回经过CA认证的数字证书,证书里面包含了服务器的public key(公钥)
    (3).用户拿到数字证书,用自己浏览器内置的CA证书解密得到服务器的public key
    (4).用户用服务器的public key加密一个用于接下来的对称加密算法的密钥,传给web服务器
    (5).因为只有服务器有private key可以解密,所以不用担心中间人拦截这个加密的密钥
    (6).服务器拿到这个加密的密钥,解密获取密钥,再使用对称加密算法,和用户完成接下来的网络通信

  • 加密方法


    详解HTTP1.0 HTTP1.1 HTTPS HTTP/2 websocket的区别_第11张图片
    hVabvMS.png
  • 总结
    所以相比HTTP,HTTPS 传输更加安全
    (1) 所有信息都是加密传播,黑客无法窃听。
    (2) 具有校验机制,一旦被篡改,通信双方会立刻发现。
    (3) 配备身份证书,防止身份被冒充。

websocket

  • 服务端推送,实现服务端客户端全双工通信,基于TCP。
    websocket协议实现了客户端和服务端的双向通信,可以建立服务端主动向客户端发送数据
    -WebSocket是HTML5中新协议、新API;
  • WebSocket是由http先发起的,然后再转为websocket连接;

参考

  • 数字签名、数字证书、SSL、https是什么关系?https://www.zhihu.com/question/52493697/answer/131015846
  • 浅谈SSL/TLS工作原理:https://zhuanlan.zhihu.com/p/36981565
  • HTTPS系列:https://tech.upyun.com/article/192/HTTPS%E7%B3%BB%E5%88%97%E5%B9%B2%E8%B4%A7%EF%BC%88%E4%B8%80%EF%BC%89%EF%BC%9AHTTPS%20%E5%8E%9F%E7%90%86%E8%AF%A6%E8%A7%A3.html
  • 网站HTTP升级HTTPS完全配置手册:https://www.cnblogs.com/powertoolsteam/p/http2https.html

你可能感兴趣的:(详解HTTP1.0 HTTP1.1 HTTPS HTTP/2 websocket的区别)