Fastly Compute を便利に使う Tips (1) HTTP/3を有効化する方法

2023/12/24に公開

この記事は Fastly Compute (旧 Compute@Edge) 一人アドベントカレンダー 22 日目の記事です。

今回の一人アドベントカレンダーの最終シリーズとして Fastly Compute を便利に使うための Tips を紹介していきたいと思います。本稿では意外と知られていない(と思う) Fastly Compute で HTTP/3 を有効化する方法をご紹介します。

TL;DR

Yamagoya 2023 のパネルディスカッション冒頭で少し触れた内容と同様ですが、Fastly Compute ではコードを一行だけ追加するだけで HTTP/3 を有効化して試してみることができます。具体的な、コード例は以下の通りです。(source:https://developer.fastly.com/learning/concepts/routing-traffic-to-fastly/#supporting-http3)

// Rust の場合
myResponse.set_header(
  "Alt-Svc", "h3=\":443\";ma=86400,h3-29=\":443\";ma=86400,h3-27=\":443\";ma=86400"
);
// Go の場合
myResponse.Header.Add(
  "Alt-Svc", "h3=\":443\";ma=86400,h3-29=\":443\";ma=86400,h3-27=\":443\";ma=86400"
)
// JavaScript の場合
myResponse.headers.set(
  'Alt-Svc', `h3=":443";ma=86400,h3-29=":443";ma=86400,h3-27=":443";ma=86400`
);

クライアントの実装状況

  • 主要なブラウザ(Chrome, Edge, Firefox)でデフォルトで有効化済み (source: https://en.wikipedia.org/wiki/HTTP/3#Client)
    ※ Safari については Wikipedia での表記と異なり、実際アクセスすると手元の環境ではデフォルトでは有効化されていないように見える
  • libcurl は2023年12月現在 experimental(実験的な)機能として対応 (source: https://curl.se/docs/http3.html#experimental)

あわせて読みたい

まとめ

試し方の簡単な紹介までとなりますが、本稿では HTTP/3 を実験的に有効化する方法について紹介しました。明日は Timeout を有効に利用して実行時間を効果的に管理する実装方法についてみていきたいと思います。

Discussion