短链接 ==> 长连接(keep-alive) ==>pipeline ==> 多路复用+头部压缩+二进制分帧
http1.0---短链接
http1.1---keep-alive
基于串行文件传输数据,因此这些请求必须是有序的,所以实际上我们只是节省了建立连接的时间,而获取数据的时间并没有减少。
http1.X---pipeline
http2.0---多路复用+头部压缩+二进制分帧 + 允许服务端推送
- 短链接/无连接,每次请求独立的tcp 连接
- 长连接 keep-alive,同一个tcp特定时间内可以接收多个请求
- pipeline,多个请求串行化单线程处理,后一请求须等待上一请求处理完成,会有阻塞。
- 二进制分帧,将数据打散成更小的帧标记序列。
- 多路复用,同一域名下所有请求都是基于流,并行执行非有序并阻塞, 一个域名对应一个连接,一个连接里多个流
- 头部header压缩
http无状态连接:无记忆能力,即向给服务器发送HTTP请求后,服务器根据请求,返回响应信息,但服务器不会记录任何信息,这意味着如果下一次请求,需要上一次请求的信息,则它必须重传,这可能导致每次传送的数据量变大,造成应答时间过长。
Http的无状态特性影响了这些需要交互的应用程序,为了解决这一问题,Cookie和Session诞生了;
HTTP3.0: UDP + QUIC(quick)协议,解决队头传输层拥塞问题
HTTP 和 HTTPS 主要的区别如下:
- http协议无状态明文传输,https是SSL加密传输+身份认证的网络传输协议,相较而言更安全
- https 协议需要 ca 证书,费用较高
- 链接方式不同,端口也不同。通常http协议端口为80,https协议端口为443
https 协议的缺点
https 握手阶段比较费时,会使页面加载时间延长 50%,增加 10%~20%的耗电。
https 缓存不如 http 高效,会增加数据开销。
SSL 证书需要绑定 IP,不能再同一个 ip 上绑定多个域名,CA证书费用高