http1.0、http1.1、http2、http3、https 的区别详解

本文介绍了HTTP协议从1.0到3的发展,重点关注了短连接与持久连接的区别、HTTP/1.1的队头阻塞问题及浏览器并发限制,以及HTTP/2和HTTP/3的多路复用、二进制传输和服务器推送等特性。同时提到了HTTPS的安全性和浏览器对不同版本的连接数限制。
摘要由CSDN通过智能技术生成

  1. HTTP/1.0:

    • 使用短连接(non-persistent connections):每个请求/响应都需要建立一个新的TCP连接。
    • 缓存控制使用 expires / last-modified/if-modified-since
    • http1.0手动配置 Connection:Keep-Alive 也可以使用长连接
    • 支持的方法有 get、head、post 【简单请求的方法】
    • 有队头阻塞问题,所以浏览器会限制同一个连接的同时请求数,Chrome 是限制6个
  2. HTTP/1.1:

    • 默认使用持久连接(persistent connections):同一连接可以被多个请求重复使用,减少了连接建立和断开的开销,
    • 长连接使用 http 响应/请求头部 Connection:Keep-Alive 控制长连接,http1.1 默认开启长连接
    • 在连接空闲大约300后会自动断开 tcp 长连接,否则会浪费资源
      • 客户端主动断开连接:请求头设置Connection:close
      • 服务端主动断开连接:返回的响应没有  Connection:Keep-Alive 了,此连接就会断开
    • 有队头阻塞问题
    • 缓存控制使用 cache-control / ETag/ if-none-match
    • 引入 Hos t头部字段,使得一个物理服务器可以承载多个虚拟主机。
    • 新增了请求方法  put、delete、options
    • 有队头阻塞问题,所以浏览器会限制同一个连接的同时请求数,Chrome 是限制6个
  3. HTTP/2:

    • 二进制协议:头部信息和数据都以二进制格式传输,减少了传输时的开销。
    • 多路复用(multiplexing):在一个连接上同时发送多个请求和响应,提高了并发性能。解决了队头阻塞问题
      • 同域名下所有通信都在单个连接上完成,同个域名只需要占用一个 TCP 连接,使用一个连接并行发送多个请求和响应。
    • 头部压缩:使用HPACK算法对头部信息进行压缩,减少了传输的数据量。
    • 服务器推送(server push):服务器可以预测客户端需要的资源并在响应中主动推送。
      • 客户端也是需要至少发送一个请求的,然后服务端返回多个数据
      • server push 对要推送的资源是有限制的:其请求必须是可缓存的安全的,而且不能带有请求体。换句话说,server push 可以推 GET 和 HEAD 请求的响应
    • 因为解决了队头阻塞问题,所以浏览器的同时请求数限制几乎没有
  4. HTTP/3:

    • 使用QUIC(Quick UDP Internet Connections)协议,使用UDP,而不是TCP协议,以减少连接建立的延迟。
    • 多路复用(multiplexing)和头部压缩等特性继承自 HTTP/2。
    • 支持快速连接迁移:在网络切换时,可以更快地迁移连接。
    • 具有更好的流量控制和错误恢复机制。
    • http3 已经成为正式的标准,有些服务商已经可以使用了。
  5. https:
    • 加密传输,需要身份认证,使用证书的公钥和自己的私钥建立 tls 连接
    • 基于 ssl/tls 安全传输层协议之上
    • 默认端口是 443,http 默认端口是80

首先说几个重点

(1)我们最常用的http请求是 http1.1 和 http2

(2)如何使用 http2 或者 http3,这个不是我们前端的任务,是服务端的配置任务,比如你用的阿里云服务器,那就需要去阿里云那边配置,如果你用 nginx,那也需要使用nginx配置

(3)chrome 浏览器的最大连接数为6是针对 http1 的,因为 http1 有队头阻塞问题。

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值