HTTPが全てを飲み込む(後編)~アップロードのレジューム機能標準化など開発中の新機能

2024年1月18日

Webを構成する重要な要素の1つであるHTTPは、その最新仕様で2層構造となり、バージョンに関係なく使えるSemanticsと、特徴の異なる通信仕様を定めたHTTP/1.1、2、3に分割されました。

さらに現在では、HTTPの上にあらためてUDPやIP、イーサネットなどのプロトコルを実装する提案が行われており、まさにHTTPは通信の全てを飲み込む勢いで進化しつつあります。

こうしたHTTPの最新動向の解説が、大手CDNベンダでエッジクラウドなども展開するFastlyが2023年11月8日開催したイベント「Yamagoya 2023」で同社シニアプリンシパルエンジニアの奥一穂氏が行ったセッション「HTTPが全てを飲み込む」にて行われました。

本記事ではこのセッションをダイジェストで紹介していきます。記事は以下の3つに分かれています。

今お読みの記事は「HTTPが全てを飲み込む(後編)~アップロードのレジューム機能標準化など開発中の新機能」です。

Resumable Uploads

ついでに、IETFでの新しい動きについてもいくつか紹介しましょう。

まず「Resumable Uploads」です。これは例えば、大きな動画ファイルなどをアップロードする場合、接続が悪いとアップロードが途中で失敗して最初からやり直し、みたいなことがあったと思います。

このアップロードのレジューム機能を標準化しましょうという動きです。

この仕様はだいぶ固まってきていまして、先週末のハッカソンで実際にオープンソースの実装をいくつか持ち寄って開発と互換性テストをする段階にまでなりました。

fig

これが標準化されてライブラリになると、みんながレジューム可能なアップロードを使えるようになって幸せになるのかなと思います。

Compression Dictionary Transport

また、新しい圧縮転送の仕組みも提案されています。

従来のcontent-encodingの圧縮方法は、どうしても小さいファイルでは圧縮率が低かった。そこで小さいファイルをたくさん集めて1個に結合するわけですが、そうなると今度は不要なやつまで送っちゃってかえって遅くなる。そういった問題がありました。

fig

そこで、最初にダウンロードしたファイルを後続のファイルの辞書として使えば後続のファイルは効率よく圧縮できるのではないかと。

そういう提案がこの「Compression Dictionary Transport」というものです。

Reverse HTTP Transport

もう1つ紹介しておきたいのが「Reverse HTTP Transport」という提案です。

今まではCDNがオリジンに繋ぎに行くのが普通でした。その場合、例えばオリジン側でロードバランサーを置いてワーカーインスタンスを増やそうとするとオリジン側でロードバランサーの設定を変えて、などの操作が必要でした。

また外部からオリジンにアクセスがくるので、オリジン側でセキュリティ関係について、例えばファイアウォールの設定などを考える必要があります。

fig

これに対して今回提案されている「Reverse HTTP Transport」では、オリジンがCDNに繋いでリクエストを取っていく、でレスポンスを返す。こういったプロトコルが提案されています。

これを使えば、サーバの負荷が上がってきたなと思ったらオリジンを足せば勝手にCDNにリクエスト取りに行って処理してくれるし、負荷が下がってきたなと思えばオリジン落とせばいい。

するとワーカーインスタンスの追加や削除が簡単になるし、ロードバランサーも不要になる。こういう点で注目されている拡張になっています。

まとめ

最後にまとめたいと思います。

fig

HTTPは2層構造になり、バージョンに関係なく使えるSemanticsと、特徴の異なる通信仕様を定めたHTTP/1.1、2、3に分割されました。

また、extended CONNECTの上にさまざまな通信プロトコルが提案されるようになってきています。その他、注目の拡張もいろいろ出てきています。

こいうことで今後ともHTTPがどのように変化していくか、ぜひ注目してご覧いただければと思います。

私からは以上になります。ご清聴ありがとうございました。

あわせて読みたい

HTTP QUIC Web標準 ネットワーク




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本