HAR ファイル形式とは?
.har ファイル(HTTP Archive の略)は、ブラウザセッション中にやり取りされたすべての HTTP リクエストとレスポンスを記録する JSON ベースのログです。ブラウザ、プロキシ、パフォーマンス監視ツールが .har ファイルをエクスポートすることで、開発者やサポートエンジニアはネットワークアクティビティをオフラインで再現、検査、分析できます。
この形式は 2007 年頃に Firebug の Net パネルのエクスポート形式として誕生し、その後 2012 年に W3C のエディターズドラフトで正式化されました。現在、すべての主要ブラウザ(Chrome、Edge、Firefox、Safari)が書き出すバージョンは HAR 1.2 であり、デベロッパーツールの「ネットワーク」タブには「すべてを HAR として保存」というオプションが含まれています。
内部的には、.har ファイルは単一の JSON オブジェクトであり、トップレベルキー log の中に以下が含まれています:
version- 現代のエクスポートでは常に1.2(古いツールでは1.1)pages[]- ページロードごとのエントリと、全体のロードタイミングentries[]- HTTP リクエスト/レスポンスのペアごとのエントリ。URL、メソッド、ステータスコード、ヘッダー、クッキー、送信されたフォームデータ、および各ステージのタイミング(DNS ルックアップ、TCP 接続、TLS ハンドシェイク、送信、待機、受信)が含まれます。
.har ファイルはこれらすべてをプレーンな UTF-8 テキストとして保存するため、セッションクッキー、認証トークン、レスポンスボディ全体などの機密情報が含まれる可能性があります。公開したりサポートチケットに添付したりする前に、これらを認証情報と同様に扱ってください。
Microsoft 365、Okta、Zendesk、Cloudflare などのサービスのサポートチームは、ログインの失敗、ページの読み込み遅延、API エラーの診断を支援するために、ユーザーに .har ファイルの記録と添付を日常的に依頼します。また、セキュリティ研究者は .har エクスポートを Fiddler や Wireshark などのツールに読み込み、キャプチャされたセッションを検査および再現します。
ファイルサイズは急速に増大します。単純なページロードで 200 KB ~ 2 MB になり、複雑なセッションを数分間記録すると 100 MB を超えることもあります。この形式には組み込みの圧縮機能はありませんが、保存や転送のために外部で gzip 圧縮されるのが一般的です。プレーンな JSON であるため、任意のテキストエディタで開くことができます。また、Google Admin Toolbox HAR Analyzer などの専用アナライザーを使用すると、データをリクエストとレスポンスのインタラクティブなウォーターフォール図として表示できます。
セキュリティと安全性
リスク: HIGHHAR の危険性はマルウェアではなく「漏洩」にあります。HAR はブラウザが送信および受信したすべてをクリアテキストでキャプチャします:セッションクッキー、OAuth/ベアラートークン、API キー、CSRF トークン、完全な POST ボディ、そして時には入力されたパスワードまで含まれます。このファイルを入手した第三者は、ユーザーの認証済みセッションを再現できることがよくあります。2023 年の Okta サポートシステムへの不正アクセス事件(盗まれた HAR ファイルにセッショントークンが含まれていた)などの重大なインシデントが、このリスクを具体化しています。HAR を共有する前に:可能な限りレスポンス内容を含めずに生成し、サニタイザー(Cloudflare や Google の «HAR sanitizer»、または har-sanitizer ツールなど)にかけてクッキー、Authorization ヘッダー、トークンを削除してください。公開のチケット、フォーラム、チャットに生の HAR を投稿しないでください。ファイル自体は実行されないため、中身を「読む」ために開くことは安全です。
形式の詳細
概要- Resource Interchange Audio (レガシー .HAR) - いくつかの古い DOS 時代のゲームが、パックされたオーディオ/リソースアーカイブに .har を使用していましたが、HTTP Archive とは無関係です。
HAR ファイルを開くプログラム
技術的詳細
詳細仕様| コンテナ形式 | JSON (プレーンテキスト, UTF-8) |
| MIME タイプ | application/json; application/har+json としても登録されています |
| ファイルシグネチャ | なし - JSON 構造によって識別されます。ファイルはほぼ常に {"log":{"version":"1.2" で始まります |
| 内部バージョンフィールド | log.version フィールド:現代のエクスポートではすべて "1.2"、古いツールでは "1.1" |
| トップレベルスキーマ | {log:{version, creator, browser, pages[], entries[]}} - HTTP リクエスト/レスポンスのペアごとに 1 つの entries[] アイテム |
| エントリごとのタイミングフィールド | ステージごとのミリ秒単位の解像度:dns, connect, ssl, send, wait (TTFB), receive - ウォーターフォール図の分析を可能にします |
| バイナリコンテンツの処理 | バイナリのレスポンスボディは、JSON テキストフィールド内で base64 エンコードされます |
| 圧縮 | 組み込み機能はなし。保存や転送のために外部で .har.gz として gzip 圧縮されるのが一般的です |
| プライバシー感度 | 高 - クッキー、認証ヘッダー、認証トークン、およびリクエスト/レスポンスボディ全体をクリアテキストで保存します |
| 典型的なファイルサイズ | 1 セッションあたり 200 KB ~ 50 MB。メディアが多い場合や長時間のセッションでは 100 MB を超えることがあります |
| プラットフォームのサポート | Chrome, Edge, Firefox, Safari のデベロッパーツールでエクスポート可能。Charles Proxy, Fiddler, Proxyman などでインポート可能 |
| 主な用途 | パフォーマンス分析、ウェブデバッグ、サポート診断(Microsoft 365, Okta, Zendesk, Cloudflare)、および HTTP トラフィックの監査 |
| エントリ数の制限 | 無制限 - キャプチャされたリクエストごとに entries 配列が増大します。利用可能なメモリによってのみ制限されます |
| リリース日 | 2007 (HAR 1.1 draft, Firebug Net panel); W3C draft 'HTTP Archive (HAR) format' 2012 |
| 最新バージョン | HAR 1.2 (the version recorded inside every modern export's log.version field) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | www.softwareishard.com |
HAR の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。HAR ファイルについて最初の質問をしてみましょう。