详解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的格式等,它不支持持久连接,每次连接必须是重新发起,效率比较低。
    mOzi8bD.png
phN7Xvv.png

2. HTTP1.1

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


    bsPBD7B.jpg

3. HTTP/2

  • HTTP/2实现了多路复用,解决了HTPP1.1线头阻塞的问题,真正意义上实现了管线化的理论,大幅度的提升了web性能
    TZPJgOc.gif

现在可以这样


cVJ5KQk.png
  • HTTP2将原来的传输文本封装成二进制帧数据发送


    9oOSrWV.png

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


    pR5Py00.png
  • 使用HPACK对HTTP/2头部压缩
    减少header头部的大小
  • 服务器推送
  • 流优先级(Stream Priority)它被用来告诉对端哪个流更重要

https

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


    L9JFpys.png
  • 加密过程


    7rSoydd.png

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

  • 加密方法


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

websocket

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

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。