http1.1 vs http2.0 速度对比实测

首先对比一下http1.1 vs http2.0 区别:

1. 连接管理:

  • HTTP/1.1 :
    • 每个请求/响应都需要一个独立的 TCP 连接,虽然可以使用持久连接(keep-alive)来复用连接,但仍然存在请求队头阻塞(Head-of-Line Blocking)的问题。
  • HTTP/2.0 :
    • 允许多个请求和响应在同一个连接上并行传输,使用流(streams)来区分不同的请求,避免了队头阻塞问题。

2. 数据格式:

  • HTTP/1.1 :
    • 使用文本格式进行数据传输,所有的头部信息都是明文的,解析效率较低。
  • HTTP/2.0 :
    • 使用二进制格式进行数据传输,效率更高,减少了数据传输的开销。

3. 头部压缩:

  • HTTP/1.1 :
    • 头部信息未经过压缩,导致在大量请求时,头部数据可能占用较大带宽。
  • HTTP/2.0 :
    • 采用 HPACK 头部压缩算法,减少了头部数据的大小,提高了传输效率。

4. 优先级和流控制:

  • HTTP/1.1 :
    • 不支持请求优先级,所有请求都按顺序处理。
  • HTTP/2.0 :
    • 支持请求优先级和流控制,可以根据需求调整请求的处理顺序,提高资源利用率。

代码实测:

项目地址: https://github.com/jackywq/http1.1vshttp2.0

首先clone一下项目,然后在nginx上配置http1.1 和 http2.0两个server,在nginx.conf配置如下代码:

bash 复制代码
server {
        # https
        listen 441 ssl; 
        server_name  127.0.0.1;

        # 各自电脑的ssl证书地址可能不一样,自己调整下
        ssl_certificate /usr/local/etc/nginx/ssl-cert.pem;
        ssl_certificate_key /usr/local/etc/nginx/ssl-key.pem;

        add_header Cache-Control no-store;

        location / {
            # 各自电脑的静态html地址不一样,自己调整下
            root   /Users/wangquan/http-hello/http1-vs-http2/static; 
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    server {
        # https
        listen 442 ssl; 
        http2 on;
        server_name  127.0.0.1;

        ssl_certificate /usr/local/etc/nginx/ssl-cert.pem;
        ssl_certificate_key /usr/local/etc/nginx/ssl-key.pem;

        add_header Cache-Control no-store;

        location / {
            root   /Users/wangquan/http-hello/http1-vs-http2/static; 
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

使用nginx -t 测试下,测试成功后执行 nginx -s reload;

使用浏览器分别打开 https://127.0.0.1:441/https://127.0.0.1:442/

以下在无延迟和网络延迟100ms的网络环境下,分别测试http1.1和http2.0页面渲染总耗时;

无延迟:http1.1和http2.0渲染时长差别不大

网络延迟100ms: http2.0比http1.1速度快了3倍;

总结:

HTTP/2.0 相比 HTTP/1.1 在性能和效率上有显著提升,特别是在处理大量请求和高延迟网络环境中。通过并行处理、头部压缩和服务器推送等特性,HTTP/2.0 提供了更快的加载速度和更好的用户体验。

相关推荐
程序员-李俞13 分钟前
Coze 工作流调用异步 HTTP API 完整教程:任务 ID、循环轮询、状态判断与结果 URL 提取
网络·人工智能·网络协议·http·aigc·ai编程·ai写作
熊IT1 天前
HTTP 代理检测工具:快速检查代理可用性、出口 IP 与延迟
网络协议·tcp/ip·http
何以解忧,唯有..1 天前
HTTP 与 HTTPS:从明文传输到安全加密的演进
安全·http·https
今儿敲了吗1 天前
CN——HTTP 工作流程
网络·网络协议·http
虎王物联2 天前
ESP32 HTTP客户端开发实战:TLS加密通信与RESTful API集成方案
http·restful·iphone
小僧景贤2 天前
嵌入式网络协议 | MQTT、CoAP与HTTP协议深度解析(原理、差异、工程选型、代码实操)
mqtt·http·物联网协议·coap·网络协议选型
CDN3602 天前
360CDN发布HTTP/3(QUIC)弱网加速方案:实测首屏提速40%,彻底终结移动端接口超时与频繁断连
网络·网络协议·http
一条泥憨鱼3 天前
【从0开始学习计算机网络】| DNS -记录类型详解
计算机网络·http·github·域名·dns·记录
白嫖一茶3 天前
HTTP 状态码总共分为五大类
http
XUEYUAN52124 天前
Cloudflare 防护机制深度剖析与跨境数据采集工程化实践
服务器·网络·网络协议·tcp/ip·http