$30 off During Our Annual Pro Sale. View Details »

HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜

HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜

HTTP/1.0 から HTTP/3 までの進化を「なぜそう変わってきたのか」という視点で解説するスライドです。

HTTP/1.1 の改善点と限界、HTTP/2 による多重化、不安定なネットワーク環境に強い HTTP/3(QUIC)までを図と猫を使って簡単に説明しています。

「HTTP/2 は速い」「HTTP/3 は新しい」で終わらせず、仕組みと背景を理解したい人向けの内容です。

Progate コミュニティ カンファレンス 2025 発表資料

Avatar for ♛Heitor Hirose

♛Heitor Hirose

December 27, 2025
Tweet

More Decks by ♛Heitor Hirose

Other Decks in Programming

Transcript

  1. HTTPは自力でサーバーまでたどり着けない。 HTTPは「データの表現」を決めるルールで、 それを相手に届ける機能は持 っていない。実際にデータを運んでいるのは、下のレイヤーにある TCP と いう通信プロトコルを利用している。 HTTP/1.0 : リクエストごとに通信を行う基本的なHTTP(TCP)

    HTTP/1.1 : 実用性が向上(TCP) HTTP/2 : 複数の通信を同時に扱えるように設計を刷新(TCP) HTTP/3 : 不安定な環境でも強くなった(UDP・QUIC) また、バージョンによってそれ以外のプロトコルが使われることも、 、
  2. HTTP/1.0では何が問題だったのか HTTP/1.0では、リクエストごとに新しく通信を開始し、レスポンスが終わ ると通信を終了していた。サーバーから1つのデータを通信するたびに、 TCPハンドシェイクをしなければならなかった、 、 、 、 クライアント ウェブサーバー SYN

    「お前、つながるよな???」 SYN 「お前、つながるよな???」 SYN 「お前、つながるよな???」 SYN 「お前、つながるよな???」 SYN 「お前、つながるよな???」 ※ TCPハンドシェイクのイメージ図
  3. GET /index.html GET /assets/css/main.css GET /assets/css/main.css GET /assets/js/main.js GET /images/main/top-page.webp

    HTTP/1.1 における順番待ち問題 1つの処理の遅れが後続すべてに影響してしまう問題を一般的に、 HOL(Head-of-Line Blocking )と呼ばれています。 クライアント ウェブサーバー 何かしらの要因で失敗 再送 タイムロスに、 、 あぁ、 、 、 なんでこのサイト表示遅いん??? あぁぁぁぁ詰まったぁあああ ※ 1つのTCPセッションで行われるHTTP通信のイメージ図
  4. HTTP/2.0 で再度、猫が助かる。 HTTP/2 では、1つのTCP接続の中で、複数のHTTP通信を並行して扱う仕組 みが導入された。1つのレスポンスが遅れても、他の通信を止めずに進めら れるようになった。 (えらい!!) GET /index.html GET

    /assets/css/main.css GET /assets/css/main.css GET /assets/js/main.js GET /images/main/top-page.webp クライアント ウェブサーバー 何かしらの要因で失敗 再送 なんでこのサイト表示遅いん??? あぁぁぁぁ詰まったぁあああ ※ 1つのTCPセッションで行われるHTTP通信のイメージ図 並行で送るので大丈夫! 並行で送るので大丈夫!