Web オープンフォント形式 (.woff)

W3C勧告(2012) 標準

Web Open Font Format(WOFF)は、W3Cが推奨する歴史的な第1世代のオープン標準Webフォント形式であり、標準のTrueTypeまたはOpenTypeフォントをzlib圧縮とXMLライセンスメタデータでラップしています。

調査とメタデータ

オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してWOFFファイルを識別します:

ファイルを選択するか、ここにドロップしてください

プライベート - ファイルがデバイスの外に出ることはありません

または貼り付け Ctrl+V
ネットワーク送信ゼロのプライバシー保証: 外部サーバーへのデータ送信は0バイトです。すべての処理はお使いのブラウザのサンドボックス内でローカルに実行されます。

バイトレベルのヘッダーシグネチャ (マジックバイト)

オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してWOFFファイルを識別します:

16進数シグネチャ(オフセット0):

77 4F 46 46

ASCII表現: wOFF

標準化: W3C勧告(2012)

技術仕様

コンテナアーキテクチャ44バイトのWOFFヘッダーに続き、テーブルディレクトリ、zlib圧縮テーブルデータ、オプションの拡張メタデータとプライベートデータを格納
圧縮各フォントテーブルにDeflate(zlib)圧縮を適用
バイトエンディアンビッグエンディアン(SFNT標準)
色空間基になるフォントテーブルから継承
チャンネルと構造TrueType('glyf')またはPostScript('CFF ')の字形アウトライン、メトリクス、文字組み機能
最大寸法フォントファイルあたり最大65,535字形
透過性基になるフォント形式を継承
ストリーミングとプログレッシブテーブルごとの解凍によりフォントをストリーミング読み込み可能

技術比較表:WOFFと競合製品

技術属性WOFF (現在)WOFF2TTFOTF
圧縮コーデックテーブルごとのDeflate(zlib)テーブル前処理付きBrotli非圧縮SFNT非圧縮SFNT
マジック署名wOFF (0x77 0x4F 0x46 0x46)wOF2 (0x77 0x4F 0x46 0x32)0x00 0x01 0x00 0x00OTTO (0x4F 0x54 0x54 0x4F)
相対的なファイルサイズTTFより小さいことが多い。削減幅はフォントによって異なるTTFより小さいことが多い。削減幅はフォントによって異なるベースライン標準(100%)ベースライン標準(100%)
ターゲット環境レガシーWebブラウザ(IE9+、Safari 5+)対応状況はブラウザーによって異なります。デスクトップオペレーティングシステムデスクトップパブリッシングおよび印刷

一般的な破損モードと16進数リカバリガイド

ブラウザコンソールの警告: 'Failed to decode downloaded font: OTS parsing error'。

根本原因: 宣言された未圧縮テーブルの長さの不一致、または破損したzlibストリーム。

復旧: フォントテーブルを再圧縮するか、File2File.appフォントコンバーターを使用してWOFF2に変換します。

セキュリティ分析とパーサー攻撃ベクトル

Webブラウザは、信頼できないWebドメインからダウンロードしたWOFFファイルをOpenType Sanitizer(OTS)を使用して解析し、エクスプロイトペイロードをブロックします。

既知の攻撃ベクター

  • 破損したフォントテーブルチャンクのzlib解凍中のバッファオーバーリード。
  • フォントレンダラーでヒープバッファオーバーフローを引き起こす、一致しないテーブル長フィールド。
  • フォントテーブルの展開中のメモリ枯渇によるサービス拒否。

防御的ベストプラクティス: ダウンロードした WOFF ファイルは、オペレーティングシステムのフォントエンジンに渡す前に、必ず OTS でサニタイズしてください。

歴史的背景とマイルストーン

2018優れたBrotli圧縮により、優先Webフォント標準としてWOFF2に後を譲る。
2012W3CがWOFF 1.0を正式なWeb標準勧告として公式に公開する。
2009Henrik Rydgård、Tal Leming、Jonathan KewがWebフォントのライセンス懸念を解決するためにWOFFを仕様化する。

主なメリット

  • 生のTTFやOTFファイルと比べて、Webフォントのファイルサイズを削減できる場合があります。削減量はフォントとエンコーダーによって異なります。
  • 2011年以降にリリースされたすべてのデスクトップおよびモバイルWebブラウザと後方互換性があります。
  • フォントのライセンス、作者のクレジット、およびファウンドリの著作権情報用のオプションのXMLメタデータブロックが含まれています。

技術的な制限とデメリット

  • 多くのWebワークフローでは、Brotli圧縮とフォントテーブル変換を使うWOFF2に置き換えられています。ファイルサイズの削減量はさまざまです。
  • TTF/OTFに変換しない限り、デスクトップオペレーティングシステム(Windows/Mac)に直接インストールすることはできません。
  • 古いzlib圧縮アルゴリズムは、最新のエントロピーエンコーダーほど効率的ではありません。

興味深い技術トリビア

  • WOFF 1.0のマジックバイトは「wOFF」(0x77 0x4F 0x46 0x46)であり、WOFF 2.0は「wOF2」を使用します。
  • タイプファウンドリは、WOFFの専用コンテナによってWebフォントが不正コピーされやすいデスクトップフォントと区別されるため、WOFFの作成後に初めてフォントをWebで使用することに同意しました。
  • WOFFは、公式のW3C勧告になる前の2010年に、Firefox 3.6に最初に実装されました。

よくある技術的な質問

WOFF と WOFF2 の違いは何ですか?

WOFF は zlib 圧縮を使用しますが、WOFF2 は Google の新しい Brotli アルゴリズムとテーブル変換を使用するため、WOFF よりもファイルサイズが約30%小さくなります。

デスクトップ用に WOFF フォントを TTF または OTF に変換するにはどうすればよいですか?

Webブラウザ上で File2File.app を直接使用すれば、数秒で WOFF ファイルをインストール可能なデスクトップ用の TTF または OTF フォントに変換できます。

現代のWebサイトでも WOFF 1.0 はまだ必要ですか?

いいえ。すべてのモダンブラウザが WOFF2 をネイティブサポートしています。WOFF 1.0 は、Internet Explorer などの古いレガシーブラウザに対応する必要がある場合にのみ必要です。