☁️ Web・クラウド構築

example.comの技術的な扱いとRFC仕様、そして2026年の大幅アップデートを徹底解説

#Web標準#RFC#DNS#Cloudflare#Web開発

技術書や公式ドキュメント、API仕様書、あるいは curl コマンドの動作確認などで、誰もが一度は目にしたことがあるドメインが example.com です。

一見するとただのシンプルなWebページに見えますが、このドメインはインターネット標準(RFC)によって厳密に定義・保護された特別な領域であり、世界中の誤設定プログラムや自動化ボットから毎秒膨大なトラフィックを受け止め続けているインフラでもあります。

そして 2026年9月〜10月にかけて、管理元の IANA(Internet Assigned Numbers Authority)は example.com に対して10数年ぶりとなる大規模な仕様・デザイン刷新を実施しました。本記事では、エンジニアが知っておくべき example.com の技術的な位置づけと、今回のアップデートに込められた巧みなアーキテクチャ設計を紐解きます。


1. example.com の技術的な位置づけ(RFC 2606 / RFC 6761)

ドキュメントやサンプルコードの中に適当なドメイン名(たとえば my-test-shop.com など)を書いてしまうと、第三者がそのドメインを実際に取得した際、読者のアクセスやサンプルスクリプトの通信が無関係なサーバーへ大量に飛んでしまう事故が起きます。

これを防ぐため、IETF(Internet Engineering Task Force)は RFC 2606(1999年6月発行)および RFC 6761(2013年2月発行:Special-Use Domain Names)において、「事前申請や許可なしに、ドキュメント・技術仕様書・サンプル設定の例示として誰でも自由に使ってよい予約済みドメイン」 を定めました。

1.1 例示・テスト用に予約されているドメイン一覧

種別ドメイン名 / TLD標準規格主な用途・仕様上の扱い
第2レベルドメインexample.com
example.net
example.org
example.edu
RFC 2606
RFC 6761
ドキュメントやサンプルコードでの例示用。IANA によって実際に Web サーバーが運用され、HTTPS / HTTP の両方で応答する
トップレベルドメイン.exampleRFC 2606ドキュメントの例示専用 TLD(ルートゾーンに委任されない)
テスト用 TLD.testRFC 2606
RFC 6761
ローカルや社内での DNS・ソフトウェアテスト用
無効保証 TLD.invalidRFC 2606
RFC 6761
必ず名前解決に失敗する(NXDOMAIN となる)ことが保証された TLD
ループバック TLD.localhostRFC 2606
RFC 6761
常にローカルループバックアドレス(127.0.0.1 / ::1)を指す TLD

1.2 ドメインと一緒に使うべき「例示用IPアドレス」(RFC 5737 / RFC 3849)

DNSレコードやネットワーク設定の記事を書く際、ドメイン名だけでなく IP アドレスの例示が必要になる場面も多々あります。このとき 1.2.3.4 のような実在するパブリックIPを書いてしまうのは厳禁です。IPアドレスにも、ドキュメント専用の予約ブロックが用意されています。

  • IPv4 ドキュメント用ブロック(RFC 5737)
    • 192.0.2.0/24(TEST-NET-1)
    • 198.51.100.0/24(TEST-NET-2)
    • 203.0.113.0/24(TEST-NET-3)
  • IPv6 ドキュメント用プレフィックス(RFC 3849)
    • 2001:db8::/32

2. 誤送信メールや不正リクエストを弾く DNS・HTTP の防御設計

example.com は世界中のチュートリアルや初期設定ファイルに記述されているため、設定を変更し忘れた本番サーバーから毎日膨大な数のメール送信や API リクエストが飛んできます。IANA はこれらを安全かつ最小コストで処理するため、DNS と HTTP の両面で徹底した防御設定を施しています。

2.1 メールを一切受け取らない「Null MX」と最厳格な DMARC

dig コマンドで example.com のメール関連 DNS レコードを確認すると、メールを受信しないドメインの模範的な設定(ベストプラクティス)を見ることができます。

Terminal
$ dig +short MX example.com
0 .

$ dig +short TXT example.com
"v=spf1 -all"

$ dig +short TXT _dmarc.example.com
"v=DMARC1;p=reject;sp=reject;adkim=s;aspf=s"
  1. Null MX(RFC 7505):MX レコードに優先度 0 とルートドット . を指定することで、「このドメインはメールを一切受け取らない」ことを送信側 MTA に宣言し、無駄な再送試行を即座に中止させます。
  2. v=spf1 -all と p=reject:example.com を送信元(From)として騙るメールをすべて拒否させ、サブドメイン(sp=reject)も含めてバウンスメールの散乱(バックスキャッター)を防いでいます。

2.2 Cloudflare への移行と POST 等の 405 Method Not Allowed 制限

現在、example.com の権威 DNS および CDN 配信は Cloudflare 上で運用されています。また、サンプルコードのまま放置された Webhook 送信処理やフォーム送信スクリプトによる負荷を抑えるため、GET と HEAD 以外の HTTP メソッド(POST / PUT / DELETE / PATCH 等)に対しては明示的に 405 Method Not Allowed を返す仕様になっています。

HTTP
HTTP/2 200 
server: cloudflare
allow: GET, HEAD
content-type: text/html; charset=utf-8

3. 2026年秋に実施された example.com 大幅アップデートの全貌

長らく example.com といえば、グレーの背景の中央に白いカード枠が配置され、Example Domain という見出しと英語の短い説明文だけが表示されるクラシックなデザインでおなじみでした。

しかし 2026年9月〜10月にかけて、IANA はこのページに歴史的なアップデートを実施しました。実際に curl -s https://example.com を実行すると、現在の HTML ソースが驚くほどコンパクトかつモダンに書き換えられていることがわかります。

3.1 現在の example.com の HTML ソースコード(全563バイト)

HTML
<!doctype html><html lang=en><head><meta charset=utf-8><link rel=icon href=data:,><meta name=viewport content="width=device-width,initial-scale=1"><title>Example Domain</title><style>html{color-scheme:light dark;background:light-dark(#eee,#222)}body{font:16px/1.6 system-ui,sans-serif;max-width:26em;margin:auto;padding:25vh 2em 2em;text-align:center}</style></head><body><p>This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.</p><script src=/s.js></script></body></html>

わずか563バイトの HTML の中に、現代のフロントエンド・インフラ最適化のエッセンスが凝縮されています。特に注目すべき4つの変更点を見ていきましょう。


変更点①:「テストや死活監視に使わないで」という明確な警告文の追加

従来の文面は 「This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.」 という穏やかな説明のみでした。

しかし今回のアップデートで、後半にかなり踏み込んだ一文が追加されました。

This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.
(このドメインは許可を必要とせずドキュメントの例示に使用するためのものです。これはサービスではありません。テストや監視の目的でこれに依存することは避けてください。)

ルーターや IoT 機器のインターネット疎通確認、CI/CD パイプラインのネットワークテスト、さらにはアプリケーションの死活監視ツールのデフォルトターゲットとして https://example.com をハードコードしてしまう事例が後を絶たず、本来の目的である「文書内の例示」を超えた実運用トラフィックに対する強い警鐘となっています。


変更点②:ボット通信の帯域を削減する「HTML本体と /s.js の2段階分離設計」

今回のアップデートで最もユニークなのが、「ブラウザで開くと6言語のテキストと本のアイコンが表示されるのに、curl で取得した HTML には英語1文と <script src=/s.js></script> しか入っていない」 という構造です。

IANA(PTI 社長兼 IANA サービス担当 VP の Kim Davies 氏ら)の背景説明によると、example.com へのアクセスの大半は人間のWebブラウザではなく、自動化されたスクリプト・クローラー・コマンドラインツール(curl 等) によるものです。

もし HTML ファイル自体に多言語テキストや SVG アイコンをすべて埋め込んでしまうと、JavaScript を解釈しない何十億回ものボットリクエストに対しても毎回大きなペイロードを転送することになり、膨大な通信帯域(Bandwidth)を浪費してしまいます。そこで以下のような2段階構成が採られました。

  1. 自動化ボット・curl 向け(/ の HTML 本体):最小限の 563 バイトだけを返し、帯域消費を極限まで抑える。
  2. 人間のブラウザ向け(/s.js の追加読み込み):ブラウザが /s.js を実行したときだけ、国連公用語6言語(英語・アラビア語・中国語・フランス語・ロシア語・スペイン語)の翻訳文、開いた本の SVG アイコン、iana.org への詳細リンクを DOM に動的挿入する。

実際に配信されている /s.js の中身は以下のとおりです。

JavaScript
var B=document.body,P,p;
B.children[0].insertAdjacentHTML("afterend",
  "<p lang=ar dir=rtl>هذا النطاق مُخصص للاستخدام في أمثلة التوثيق دون الحاجة إلى إذن. هذه ليست خدمة، يُرجى تجنب الاعتماد عليها لأغراض الاختبار والمراقبة.</p>" +
  "<p lang=zh>该域名仅用于文档示例,无需获得许可。这并非一项服务,请勿将其用于测试和监控目的。</p>" +
  "<p lang=fr>L’usage de ce domaine est réservé à des exemples de documentation, sans autorisation préalable.  Il ne s’agit pas d’un service ; son utilisation à des fins de test ou de surveillance est à éviter.</p>" +
  "<p lang=ru>Данный домен предназначен для использования в примерах документации без необходимости получения предварительного разрешения. Это не сервис; не рекомендуется его использование для тестирования и мониторинга.</p>" +
  "<p lang=es>Este dominio está destinado al uso en ejemplos de documentación sin necesidad de permiso. Esto no es un servicio; evitar utilizarlo para realizar pruebas o monitoreos.</p>" +
  "<a href=https://iana.org/help/example-domains>Learn more</a>"
);
P=[...B.querySelectorAll("p")];
P[0].lang="en";
navigator.languages.some(l=>p=P.find(p=>p.lang==l.split("-")[0]));
p=p||P[0];
B.prepend(p);
B.insertAdjacentHTML("afterbegin",
  '<style>svg{display:block;margin:-2.75em auto 0;opacity:.55}p+p{font-size:.875em;opacity:.6}</style>' +
  '<svg viewBox=0,0,20,20 width=44 height=44 fill=currentColor aria-hidden=true>...</svg>'
);

navigator.languages を参照し、閲覧者のブラウザ言語設定に一致する言語の <p> 要素を B.prepend(p) で一番上に移動させて大きく表示し、残りの5言語を p+p { font-size: .875em; opacity: .6 } で控えめに並べるという、非常にスマートな実装になっています。(※なお、2026年9月の初回ロールアウト直後には文字がアニメーションで切り替わる演出も試みられましたが、コミュニティからのフィードバックを受けて現在のシンプルでアクセシブルな一覧表示へと素早く改善されました。)


変更点③:モダンCSS light-dark() による1行ダークモード対応

HTML 内の <style> タグを見ると、メディアクエリ(@media (prefers-color-scheme: dark))を使わずに、モダン CSS の light-dark() 関数 でダークモードを実装しています。

CSS
html {
  color-scheme: light dark;
  background: light-dark(#eee, #222);
}

color-scheme: light dark を宣言することでテキスト色やリンク色をブラウザ標準のライト/ダーク配色に自動で追従させつつ、背景色だけを light-dark(#eee, #222) で切り替えることで、わずか数十バイトで完璧なダークモード対応を実現しています。


もうひとつ見逃せないプロの技が、<head> 内に記述された以下の16バイトです。

HTML
<link rel=icon href=data:,>

通常の Web ブラウザは、ページを開くと自動的に /favicon.ico へ GET リクエストを送信します。世界中のユーザーが訪れる example.com で /favicon.ico のリクエスト(および 404 レスポンス)が発生し続けると、それだけで膨大なリクエスト数になります。空の Data URL(data:,)を明示しておくことで、ブラウザに一切の追加ネットワーク通信を発生させない 工夫が凝らされています。


4. 開発者が守るべきプラクティス:疎通確認やテストはどうすべきか?

今回のアップデートで IANA が明確にメッセージを発したとおり、開発者が自作のスクリプトや CI/CD、監視ツールの中で example.com へ実際にリクエストを飛ばす設計にするのは避けるべきです。

用途に応じて、以下のように切り分けましょう。

やりたいこと推奨される方法(ベストプラクティス)
技術記事・仕様書にダミーURLを書くhttps://example.com / https://api.example.net 等を使う(本来の正しい用途)
設定例にダミーのIPアドレスを書く192.0.2.1 / 198.51.100.1 / 203.0.113.1 / 2001:db8::1 を使う
自動テストでHTTP通信を検証するローカルのモックサーバー(MSW / WireMock 等)や localhost / .test ドメインを使う
死活監視・ネットワーク疎通確認を行う自社・自身が管理する Cloudflare Workers のヘルスチェック用エンドポイント等を監視対象にする

まとめ

  • example.com は RFC 2606 / RFC 6761 で保護された「ドキュメント例示専用」の予約ドメインであり、実在する第三者のドメインを誤って巻き込まないためのインターネットの安全弁として機能している。
  • DNS(Null MX / SPF -all / DMARC p=reject)や HTTP(GET/HEAD 以外の 405 拒否) など、不要なトラフィックや誤送信メールを最小コストで弾くお手本のようなインフラ設定が施されている。
  • 2026年秋の大幅刷新により、「テストや監視目的で依存しないこと」が明記されたほか、ボット向けの軽量 HTML(563バイト)とブラウザ向けの多言語スクリプト(/s.js)を分離する巧みな帯域最適化が導入された。

普段何気なく目にする example.com ですが、その裏側にはインターネット全体のトラフィックを受け止める IANA のエンジニアリングの知恵が詰まっています。ぜひ一度ブラウザと curl の両方からアクセスして、その違いを確かめてみてください。


📚 関連する技術記事

Web・クラウド構築の記事一覧 →

HTML-in-Canvas 解説:canvas に本物の HTML を描く新 API と、ブラウン管風レトロコンソールのデモ

<canvas> の中に DOM を描画できる HTML-in-Canvas(drawElementImage / texElementSubImage2D / paint イベント)の仕組みと Chrome での提供状況を解説し、WebGL シェーダーで走査線・湾曲・残光を再現したブラウン管風コンソールのデモを実装・検証します。

Cloudflare D1とは?従来型RDBMS・Cloud SQLとの徹底比較からコスト・パフォーマンス・設計の勘所まで解説

Cloudflareのエッジサーバーレスデータベース「Cloudflare D1」の内部アーキテクチャと性質を徹底解説。従来型RDBMS(PostgreSQL/MySQL)やGoogle Cloud SQL・AWS RDSとの比較、圧倒的なコスト優位性、レイテンシとパフォーマンスの真実、向いている用途・制約まで体系的にまとめます。