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

W3C 標準

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

調査とメタデータ

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

ここにファイルを選択またはドロップ

100%プライベートなブラウザ内変換 - ファイルがデバイスから外部に出ることはありません

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

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

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

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

77 4F 46 46

ASCII表現: wOFF

標準化: W3C Recommendation (2012)

技術仕様

コンテナアーキテクチャ44-byte WOFF header followed by table directory, zlib-compressed table data, optional extended metadata, and private data
圧縮Deflate (zlib) compression applied to each individual font table
バイトエンディアンBig-Endian (SFNT standard)
色空間Inherited from underlying font tables
チャンネルと構造TrueType ('glyf') or PostScript ('CFF ') glyph outlines, metrics, and typographic features
最大寸法Up to 65,535 glyphs per font file
透過性Inherited from underlying font format
ストリーミングとプログレッシブTable-by-table decompression enables streaming font loading

技術比較マトリックス: 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より約40%小さいTTFより約60%小さいベースライン標準(100%)ベースライン標準(100%)
ターゲット環境レガシーWebブラウザ(IE9+、Safari 5+)最新のWebブラウザ(ユニバーサル)デスクトップオペレーティングシステムデスクトップパブリッシングおよび印刷

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

ブラウザコンソールの警告:「ダウンロードしたフォントのデコードに失敗しました:OTS解析エラー(Failed to download font: OTS parsing error)」。

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

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

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

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

既知の攻撃ベクター

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

防御的ベストプラクティス:

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

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

主な利点とメリット

  • 未圧縮の生のTTFやOTFファイルと比較して、Webフォントのファイルサイズを30%から50%削減します。
  • 2011年以降にリリースされたすべてのデスクトップおよびモバイルWebブラウザ間での普遍的な後方互換性。
  • フォントのライセンス、作者のクレジット、およびファウンドリの著作権情報用のオプションのXMLメタデータブロックが含まれています。

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

  • Brotliアルゴリズムを使用して約30%小さく圧縮する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 などの古いレガシーブラウザに対応する必要がある場合にのみ必要です。