DevTools Network の見方:表示が遅い・APIが失敗する時の確認手順

入門 | 15分 で読める | 2026.07.09

公式ドキュメント

今回やること

この記事では、DevToolsのNetworkパネルを使って、ページ読み込みやAPI通信を確認します。

Networkは「ブラウザが何を取りに行き、何に失敗したか」を見る場所です。

Step 1: Networkを開いてリロードする

Chromeでページを開き、DevToolsを表示します。

Cmd/Ctrl + Shift + I

Networkタブを開いたら、ページをリロードします。

Cmd/Ctrl + R

Networkは、開いた後の通信を記録します。先にNetworkを開いてからリロードするのが基本です。

Step 2: 赤い行を見る

読み込みに失敗したリクエストは、赤く表示されることがあります。

見る項目:

  • Name
  • Status
  • Type
  • Size
  • Time

たとえば、画像が404なら次のように見えます。

logo.png   404   png   0 B

この場合、画像ファイルのパスや配置を確認します。

Step 3: Statusを見る

Statusは、HTTPの結果です。

Status意味
200成功
301/302リダイレクト
304キャッシュ利用
400リクエストが不正
401認証が必要
403権限がない
404見つからない
500サーバ内部エラー

まずは、失敗しているリクエストのStatusを見ます。

Step 4: Headersを見る

リクエストをクリックすると、詳細が表示されます。Headersでは、URLや送受信ヘッダーを確認できます。

見る項目:

  • Request URL
  • Request Method
  • Status Code
  • Response Headers
  • Request Headers

APIが失敗している時は、Request URLが正しいか、MethodがGETなのかPOSTなのかを確認します。

Step 5: Responseを見る

Responseタブでは、サーバから返ってきた中身を見られます。

JSON APIなら、エラーメッセージが返っていることがあります。

{
  "message": "token is expired"
}

画面には「通信に失敗しました」としか出ていなくても、Responseを見ると原因が書かれていることがあります。

Step 6: SizeとWaterfallを見る

表示が遅い時は、SizeとWaterfallを見ます。

確認すること:

  • 画像が大きすぎないか
  • JSやCSSが大きすぎないか
  • 外部CDNの読み込みが遅くないか
  • 同じファイルを何度も読んでいないか

画像が数MBある場合、最初の表示が遅くなる原因になります。

Step 7: フィルターを使う

Networkにはフィルターがあります。

フィルター見るもの
Fetch/XHRAPI通信
JSJavaScript
CSSCSS
Img画像
DocHTML

APIだけ見たい時は、Fetch/XHRに切り替えると探しやすくなります。

ポイント: Networkでは「どのURL」「何番のstatus」「返ってきた中身」をセットで見ます。

まとめ

DevTools Networkは、通信の事実を見る場所です。画面だけでは分からない404、500、CORS、画像の重さ、APIレスポンスを確認できます。

表示が遅い、画像が出ない、APIが動かない時は、まずNetworkを開いてリロードします。

次に読む記事

ケース:JSON APIのはずがHTMLを返す

statusが200でもResponse先頭が<!doctype html>なら、JSON parsing errorは応答形式の不一致です。Request URLがfrontend serverへ向く、proxy prefixがない、redirect後にlogin pageへ着く可能性をHeadersで確認します。

Content-Typeがtext/htmlならAPI契約のapplication/jsonと一致しません。Previewの印象ではなくHeadersと本文を根拠にします。二件並ぶ時はpreflight、redirect、retry、二重clickをmethodとInitiatorで分けます。OPTIONSとPOSTは正常な組ですがPOST二件ならlistener重複やbuttonとform submitの両方を疑います。

証拠にはmethod、最終URL、status、Content-Type、response概要を残します。Disable cacheは調査条件として記録し、通常cacheへ戻して確認します。Networkを開いた時だけ成功するなら、cache無効化やtiming変化が影響している可能性があります。

Headersとbodyの照合

AcceptとContent-Typeを混同しません。前者は受け取りたい形式、後者は送信body形式です。JSONなのにform形式、multipartなのにboundary不足ならserverが解釈できません。Payloadとraw bodyを見ます。

Content-Encodingと転送Sizeも確認します。元Sizeと転送量は異なり、cacheならtransferがほぼない場合があります。認証情報の値は共有せず、送信有無、cookie属性、Set-Cookie有無を確認します。

GraphQLで200のbodyにerrors、204でbodyなし、HEADでbodyなしという契約もあります。一般的status表だけで誤りとせず対象API仕様と比較します。requestとresponseが合意したmethod、形式、認証、cache契約を一項目ずつ確認します。

query parameterの配列、空文字、日時形式はserver frameworkによって解釈が違います。URLの表示を読み、期待したencodingになっているかを確認します。+、space、日本語、timezone offsetを含む値では、frontendの元変数だけでなく実際に送信されたURLが証拠です。

Service Worker経由のresponseはNetworkの表示やSizeが通常通信と異なる場合があります。Application panelで登録状態を確認し、bypass条件を記録します。workerを解除して直っただけなら、cache versionと更新戦略の問題を残したままにしません。

DevTools Networkの一つのRequestをURL・Method・Status、Request Headersと必要時のPayload、Response HeadersとBody、Timingの4groupで確認しAPI仕様と照合する図

通信結果の判断表

観測言えること次の確認
行がないbrowserから未送信handler、Console、validation
301/302後に別URLredirectLocation、method、認証
200でHTMLAPI想定と形式違いContent-Type、最終URL
blockedHTTP応答前に遮断CORS、Mixed Content
cancelednavigation等で中断Initiator、AbortController

status 200は画面処理の成功を保証しません。 JSON契約違反やHTML応答もあります。304はcache検証結果で単純な失敗ではありません。

Networkの動作確認

Networkを開いて操作をやり直し、APIならFetch/XHRへ絞ります。Preserve log利用時は過去分と時刻を区別します。PayloadやHARのpassword、token、Cookieは共有前に除去します。修正後はmethod、最終URL、status、Content-Type、body、重複送信の有無を確かめます。Networkは通信事実を示し、期待値はAPI仕様と照合します。

参考リソース

← 一覧に戻る
PR
PR
PR
PR