【基礎編】Chromeデベロッパーツールのネットワークタブとは?HTTP通信の基礎から理解する

Chrome DevToolsのNetworkタブの基本的な使い方を解説するイラスト。ブラウザ画面にNetworkタブが表示され、HTTPリクエストやレスポンスの情報欄が確認でき、右側には『基礎』の大きな文字がある。

はじめに:こんな悩みはありませんか?

Web開発をしていると、こんな場面に遭遇することがあります。

  • 「APIを呼び出したのに、データが返ってこない…」
  • 「エラーメッセージが出るけど、どこが問題なのか分からない」
  • 「画面の読み込みが遅いけど、何が原因?」

これらの問題を解決するための強力なツールが、Chromeデベロッパーツールのネットワークタブです。

この記事では、ネットワークタブを使いこなすための土台となるHTTP通信の基礎知識と、ネットワークタブでできることを初心者にも分かりやすく解説します。


HTTP通信の仕組みを理解しよう

ネットワークタブを理解するには、まずHTTP通信の基本を押さえる必要があります。

リクエストとレスポンスとは?

Webアプリケーションの通信は、リクエスト(要求)レスポンス(応答)のやり取りで成り立っています。

ブラウザ(クライアント)       サーバー
      |                              |
      | ---- リクエスト(要求) --->    |
      |                              |
      |      「データをください」       |
      |                              |
      | <--- レスポンス(応答) ----    |
      |                              |
      |      「データをどうぞ」         |

具体例:

あなたがブラウザでWebページを開くとき、ブラウザは裏側でこんなやり取りをしています。

  1. リクエスト:「example.comのHTMLファイルをください」
  2. レスポンス:サーバーが「はい、HTMLファイルをどうぞ」と返す
  3. 画面・ページ・ブラウザがHTMLを受け取って表示

このリクエストとレスポンスのやり取りを可視化できるのが、ネットワークタブです。

HTTPメソッドとは?

リクエストには「何をしたいか」を示すHTTPメソッドがあります。

メソッド意味用途
GETデータを取得するページの表示、API からデータ取得
POSTデータを送信・作成するフォーム送信、新規データ作成
PUTデータを更新する既存データの更新
DELETEデータを削除するデータ削除

実際の例:

// ユーザー一覧を取得(GET)
fetch('https://api.example.com/users')

// 新しいユーザーを作成(POST)
fetch('https://api.example.com/users', {
  method: 'POST',
  body: JSON.stringify({ name: '太郎' })
})

ステータスコードを理解しよう

サーバーからのレスポンスには、必ずステータスコードという3桁の数字が含まれます。これは「リクエストがどうなったか」を示す重要な情報です。

主要なステータスコード一覧

コード意味説明
200OK成功。問題なくデータが返ってきた
201Created作成成功。新しいデータが作られた
204No Content成功。返すデータがない(削除など)
301Moved Permanently恒久的にURLが変更された(リダイレクト)
302Found一時的にURLが変更された(リダイレクト)
400Bad Requestリクエストが不正(パラメータ間違いなど)
401Unauthorized認証が必要(ログインしていない)
403Forbidden権限がない(アクセス禁止)
404Not Foundページやリソースが見つからない
500Internal Server Errorサーバー側でエラーが発生
502Bad Gatewayゲートウェイ・プロキシのエラー
503Service Unavailableサーバーが一時的に利用不可

覚え方のコツ:

  • 2xx = 成功
  • 3xx = リダイレクト(別の場所へ)
  • 4xx = クライアント側のエラー(あなたの問題)
  • 5xx = サーバー側のエラー(サーバーの問題)

ヘッダーとボディの役割

HTTPリクエスト・レスポンスは、ヘッダーボディの2つの部分で構成されています。

ヘッダー(Header)

ヘッダーは、通信に関するメタ情報を格納します。手紙でいえば「封筒に書かれた情報」です。

リクエストヘッダーの例:

GET /api/users HTTP/1.1
Host: api.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: application/json
Authorization: Bearer abc123token
Content-Type: application/json
ヘッダー名意味
Hostアクセス先のホスト名
User-Agent使用しているブラウザ情報
Accept受け取りたいデータ形式
Authorization認証トークン(APIキーなど)
Content-Type送信するデータの形式

レスポンスヘッダーの例:

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 348
Access-Control-Allow-Origin: *
Cache-Control: max-age=3600
ヘッダー名意味
Content-Type返されるデータの形式
Content-Lengthデータのサイズ(バイト数)
Access-Control-Allow-OriginCORS設定(どのドメインから許可)
Cache-Controlキャッシュの有効期限

ボディ(Body)

ボディは、実際に送受信するデータの中身です。手紙でいえば「便箋に書かれた内容」です。

リクエストボディの例(POST):

{
  "name": "山田太郎",
  "email": "taro@example.com",
  "age": 28
}

レスポンスボディの例(GET):

{
  "id": 123,
  "name": "山田太郎",
  "email": "taro@example.com",
  "age": 28,
  "created_at": "2025-01-15T10:30:00Z"
}

ネットワークタブで見られる情報

ここまでHTTP通信の基礎を学びました。では、ネットワークタブでは具体的に何が見られるのでしょうか?

ネットワークタブの主要機能

項目確認できる内容
リクエスト一覧ページで発生したすべての通信
ステータスコード通信が成功したか、エラーが出たか
メソッドGET、POST、PUT、DELETEなど
ファイルタイプHTML、CSS、JS、画像、API通信など
通信時間どのくらい時間がかかったか
データサイズどのくらいのデータ量か
ヘッダーリクエスト・レスポンスのヘッダー情報
レスポンスデータサーバーから返ってきたデータの中身
タイミング詳細通信の各フェーズでかかった時間

ネットワークタブの表示例

ネットワークタブを開くと、以下のような情報が一覧で表示されます:

NameStatusTypeInitiatorSizeTime
index.html200documentlocalhost15.2 KB245 ms
style.css200stylesheetindex.html:128.5 KB89 ms
app.js200scriptindex.html:1842.3 KB156 ms
/api/users200xhrapp.js:252.1 KB328 ms
logo.png404pngindex.html:80 B112 ms

この表から、「logo.pngが404エラーで見つからない」ことが一目で分かります。


なぜネットワークタブが重要なのか

ネットワークタブを使いこなすことで、以下のような実務の課題を解決できます。

1. API通信のデバッグができる

「APIが動かない」とき、ネットワークタブを見れば以下が分かります:

  • リクエストが正しく送られているか
  • ステータスコードは何か(200?404?500?)
  • サーバーからどんなエラーメッセージが返っているか
  • 送信したデータは正しいか

2. パフォーマンス問題を特定できる

「ページが重い、遅い」とき、ネットワークタブで原因を特定できます:

  • どのファイルがボトルネックになっているか
  • 画像サイズが大きすぎないか
  • サーバーのレスポンスが遅いのか、ネットワークが遅いのか
  • 不要なリクエストが多すぎないか

3. セキュリティ・認証の確認ができる

認証周りの問題も、ネットワークタブで確認できます:

  • 認証トークンが正しく送られているか
  • CORSエラーが発生していないか
  • HTTPSで通信しているか

4. フロントエンドとバックエンドの切り分けができる

「どっちが悪いの?」という時、ネットワークタブを見れば:

  • リクエストが正しく送れていれば → バックエンドの問題
  • リクエストが送れていなければ → フロントエンドの問題
  • レスポンスは返ってきているが表示されない → フロントエンドの問題

このように、問題の切り分けが明確にできます。


まとめ:基礎を押さえたら実践へ!

この記事では、ネットワークタブを理解するための基礎知識を解説しました。

ポイントの振り返り

  • HTTP通信 = リクエストとレスポンスのやり取り
  • HTTPメソッド = GET(取得)、POST(作成)、PUT(更新)、DELETE(削除)
  • ステータスコード = 2xx(成功)、3xx(リダイレクト)、4xx(クライアントエラー)、5xx(サーバーエラー)
  • ヘッダー = 通信のメタ情報(認証、データ形式など)
  • ボディ = 実際のデータの中身
  • ネットワークタブ = これらすべてを可視化できる強力なツール

次のステップ

基礎が理解できたら、次は実践編で実際の操作方法を学びましょう!

実践編では、以下の内容を詳しく解説します:

  • ネットワークタブの開き方と基本操作
  • リクエストの詳細確認方法
  • フィルター機能の使い方
  • 実務でのトラブルシューティング事例(404エラー、CORSエラー、通信遅延など)
  • Timingタブでボトルネックを特定する方法

実践編を読んで、ネットワークタブを使いこなせるようになりましょう!

【実践編】ChromeのネットワークタブでAPI通信をデバッグする方法


参考資料: