真正“搞”懂HTTP协议03之时间穿梭( 五 )


HTTP/3:面向未来的协议为什么会有HTTP/3呢?HTTP/3又做了什么事情进一步优化HTTP协议的性能呢?
出现HTTP/3的主要问题还是为了解决HTTP/2无法解决的性能问题 , 那HTTP/2为啥无法解决呢?因为HTTP/2是基于TCP的 , 虽然HTTP/2在应用层的层面解决了队头阻塞的问题 , 但是到了TCP这里 , 你还是要在TCP这条马路上传输数据包啊 , TCP还是会队头阻塞 , 所以 , 你要想真正的解决队头阻塞的问题 , 就只能完全舍弃有问题的这个协议 。
但是我之前也说了 , TCP是存在设备僵化的 , 也就是现在全球的设备都在使用TCP , 你想让每一个电脑都换成新发明的协议么?显然这不现实 , 那咋整呢?嗯 , 一个办法是要么搞一个新协议 , 这个新协议可以兼容TCP , 一个办法是换一个没有TCP协议的问题的协议 。
嗯 , 所以HTTP/3就不再使用TCP作为传输层协议了 , 而是使用UDP , UDP是无连接的 , 根本就不需要三次握手四次挥手啥的 , 所以天然就比TCP快很多 。这也是为什么新的HTTP/3没有选择去创造一个兼容TCP的协议 , 因为你只要是需要面向连接的协议 , 那就跑不出这样的围墙 , 所以干脆我就不用你了 。
但是用UDP协议还是有很多问题 。那咋整呢 , 于是在UDP和HTTP/3之间加了一层QUIC , 在UDP的基础上实现了就像TCP那样的可靠传输 , 所以HTTP/3基于UDP和QUIC , 抛弃了TCP的缺点 , 保证了TCP的优点 。这就是面向未来的协议啦 。
当然 , 现在的HTTP/3还有很多不稳定、不确定、待商榷的内容 , 但是终有一天吧 , 我们想要的 , 我们都能做到 。
小结

  1. 本篇啊 , 我们简单的过了一下HTTP的过去、现在和未来 , 那你知道为什么我在到了某一个阶段就不再附上时间节点了么?
  2. 从过去到未来 , 我们最想要解决的HTTP的性能问题是什么?
  3. 多路复用是咋复用的?
参考资料:
  1. HTTP/1协议大全
  2. HTTP/2协议大全
  3. HTTP/3协议大全
  4. HTTP/1:HTTP性能优化
【真正“搞”懂HTTP协议03之时间穿梭】

经验总结扩展阅读