1.0的HTTP版本,是一种无状态,无连接的应用层协议。 HTTP1.0规定浏览器和服务器保持短暂的链接。
    浏览器每次请求都需要与服务器建立一个TCP连接,服务器处理完成以后立即断开TCP连接(无连接),服务器不跟踪也每个客户单,也不记录过去的请求(无状态)。
    这种无状态性可以借助cookie/session机制来做身份认证和状态记录。
    http1.1相较于1.0增加了长连接,断点续传和缓存处理。
    长连接:HTTP1.1增加Connection字段,通过设置Keep-Alive保持HTTP连接不断卡。避免每次客户端与服务器请求都要重复建立释放建立TCP连接。提高了网络的利用率。
    如果客户端想关闭HTTP连接,可以在请求头中携带Connection:false来告知服务器关闭请求。
    缓存处理:强缓存和协商缓存,新字段catch-control。
    http2相较于http1.1增加了多路复用,头部压缩,二进制分帧,支持服务端推送。
    二进制分帧:在应用层和传输层之间增加一个二进制分层帧,将所有的传输信息分割为更小的消息和帧,并对它们采用二进制格式进行编码封表。
    头部压缩:使用encode来减少header的大小,首部表来跟踪和存储之前发送的键值对。
    服务端推送:服务器除了最初请求的响应外,服务器还可以额外向客户端推送资源,而无需客户端明确的需求,这样服务端就可以直接提供给浏览器渲染页面所需的资源,节约了加载时间。
    多路复用:所有HTTP2.0通信都在一个TCP链接上完成,这个链接可以承载任意流量的双向数据流。
    http3相较于http2使用了一个基于udp的quic协议,0-RRT建连可以缓存当前会话的上下文,下次恢复会话的时候,只需要将之前的缓存传递给服务器,验证通过,就可以进行传输了。