5.1 通信監視の基本

Network Panel Basics

Networkパネルは、ページが行うすべてのネットワーク通信を記録・表示する。リソースの読み込み状況、API通信の内容、パフォーマンスのボトルネック特定など、Web開発で不可欠なツール。

Networkパネルを開く

  1. F12でDevToolsを開く
  2. 「Network」タブをクリック
  3. ページをリロードして通信を記録開始
ページ読み込み前に開く NetworkパネルはDevToolsが開いている間だけ通信を記録する。ページ読み込みを記録するには、先にDevToolsを開いてからページをロードする必要がある。

パネル構成

ツールバー

ボタン 説明
🔴 Record 記録の開始/停止
🚫 Clear ログをクリア
Filter テキストフィルタ入力欄
タイプフィルタ All, Fetch/XHR, JS, CSS, Img, Media, Font, Doc, WS, Wasm, Manifest, Other
Preserve log ページ遷移でもログを保持
Disable cache キャッシュを無効化
Throttling ネットワーク速度の制限

リクエスト一覧

各リクエストが行形式で表示される。列の内容:

説明
Name リソースのファイル名またはURL
Status HTTPステータスコード(200、404等)
Type リソースタイプ(document、script、stylesheet等)
Initiator リクエストを発生させた要因(スクリプト、パーサー等)
Size レスポンスサイズ(圧縮後/展開後)
Time リクエスト完了までの時間
Waterfall タイミングの視覚化

列のカスタマイズ

列ヘッダーを右クリックで、表示する列を選択できる。

リクエスト詳細

リクエストをクリックすると、詳細パネルが表示される。

Headers(ヘッダー)

セクション 内容
General URL、メソッド、ステータスコード
Response Headers サーバーからのレスポンスヘッダー
Request Headers ブラウザが送信したリクエストヘッダー

Payload(ペイロード)

POSTリクエストなどで送信したデータ。

  • Query String Parameters: URLパラメータ
  • Form Data: フォームデータ
  • Request Payload: JSONなどのボディ

Preview(プレビュー)

レスポンスの整形表示。JSONは展開可能なツリー、HTMLはレンダリング、画像はプレビュー表示。

Response(レスポンス)

レスポンスボディの生データ。

Initiator(イニシエーター)

リクエストを発生させたコードのスタックトレース。どのスクリプトがこのリクエストを呼んだか追跡できる。

Timing(タイミング)

リクエストの各フェーズにかかった時間。詳細は5.2 Waterfall分析を参照。

Cookies(クッキー)

送受信されたCookieの一覧。

フィルタリング

タイプフィルタ

ツールバーのボタンでリソースタイプを絞り込み。

  • Fetch/XHR: API通信(最もよく使う)
  • JS: JavaScriptファイル
  • CSS: スタイルシート
  • Img: 画像
  • Doc: HTMLドキュメント
  • WS: WebSocket通信

テキストフィルタ

Filterボックスに入力してURLやファイル名で絞り込み。

フィルタコマンド

// ドメインで絞り込み
domain:api.example.com

// 特定のメソッドのみ
method:POST

// 特定のステータスコード
status-code:404

// サイズでフィルタ
larger-than:1M

// ブロックされたリクエスト
is:blocked

// キャッシュからのリクエスト
is:from-cache

// サードパーティ
-domain:example.com

// 複数条件
domain:api.example.com method:POST

反転フィルタ

「Invert」チェックボックスでフィルタ条件を反転。

サードパーティリクエストを非表示

「3rd-party requests」チェックボックスで外部ドメインへのリクエストを非表示。

コピー操作

リクエストを右クリックで様々な形式でコピーできる。

オプション 説明
Copy as cURL cURLコマンドとしてコピー
Copy as fetch JavaScript fetchコードとしてコピー
Copy as Node.js fetch Node.js用fetchコード
Copy as PowerShell PowerShellコマンド
Copy URL URLのみコピー
Copy response レスポンスボディをコピー
Copy all as HAR すべてのリクエストをHAR形式で
「Copy as cURL」の活用 APIのテストやドキュメント作成に便利。ターミナルに貼り付けてそのまま実行でき、PostmanやInsomniaにインポートも可能。

リクエストの再送

リクエストを右クリック → 「Replay XHR」で同じリクエストを再送信できる。

編集して再送

「Copy as fetch」でコードをコピーし、Consoleで編集して実行。パラメータを変えてAPIをテストする際に便利。

リクエストのブロック

特定のリクエストをブロックして、読み込めない状況をシミュレート。

設定方法

操作手順

  1. リクエストを右クリック
  2. 「Block request URL」または「Block request domain」を選択
  3. ページをリロードしてテスト

ブロックパターンの管理

Network request blocking(Ctrl+Shift+P → "Show Network request blocking")でパターンを追加・管理できる。

レスポンスのオーバーライド

リクエストを右クリック → 「Override content」でレスポンスを差し替え。詳細は4.4 Local Overridesを参照。

エクスポート/インポート

HAR形式でエクスポート

ログを右クリック → 「Save all as HAR with content」でHTTP Archive形式で保存。

HARのインポート

Networkパネルにドラッグ&ドロップでHARファイルを読み込み。過去の通信ログを分析する際に便利。

HARファイルの用途 バグ報告、パフォーマンス分析の共有、問題の再現に使用される。ただし、認証情報やCookieが含まれる可能性があるため、共有時は注意が必要。
参考文献
[1] Inspect network activity - Chrome DevTools. developer.chrome.com
[2] Network features reference - Chrome DevTools. developer.chrome.com