HTTP/2和HTTP/1.1的多路复用比较
首先
-
- HTTP/2のストリーム機能は,本当にTCP1コネクション内で多重化しているのか見てみたい。
-
- HTTP/1.1のHTTPパイプラインは,あまり使われていないという噂だが本当か試してみたい。
- HTTP/1.1よりもHTTP/2が本当に早いのか,試してみたい。
結果
-
- HTTP/2のストリーム機能は,本当にTCP1コネクションで多重化していた。
-
- HTTP/1.1のHTTPパイプラインは使われている。ただし,別のTCPコネクションも併用して効率化している(chromeで確認)
- HTTP/2はHTTP/1.1より速かった。
原料 or 物料
-
- クライアント側はWindows11+Chrome112
-
- HTMLファイル(index.html,下記jpgファイルを埋め込んだ)
-
- 60kBぐらいのjpgファイル×5個(image[1-5].jpg)
-
- nginxのコンテナ
-
- オレオレ証明書(HTTP/2はTLS必須なので)
- nginxのconfファイル。所要時間が大きくなるようにlimit_rateを設定(帯域制限)
location / {
root /usr/share/nginx/html;
index index.html index.htm;
limit_rate 600k;
}
HTTP/1.1 协议
- nginxのconfig
server{
listen 443 ssl;
listen [::]:443 ssl;
...
ssl_certificate /etc/nginx/ssl/***.crt;
ssl_certificate_key /etc/nginx/ssl/***.key;
ssl_protocols TLSv1.2 TLSv1.3;
...
}
HTTP/2
- nginxのconfig
server{
listen 443 ssl http2;
listen [::]:443 ssl http2;
...
ssl_certificate /etc/nginx/ssl/***.crt;
ssl_certificate_key /etc/nginx/ssl/***.key;
ssl_protocols TLSv1.2 TLSv1.3;
...
}