HTTPリクエストの読み方

入門 | 10分 で読める | 2026.06.26

公式ドキュメント

今回やること

この記事では、HTTPリクエストを上から順に読みます。

HTTPリクエストは「何をしたいか」「どこに送るか」「どんな形式で送るか」「誰として送るか」を見ると理解しやすくなります。

HTTPの仕組み自体は別記事で扱っているため、ここではDevToolsやcurlの表示を読めるようになることに絞ります。

リクエスト全体の形

HTTPリクエストは、主に3つの部分でできています。

POST /api/contact HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Bearer xxxxxx

{"name":"Ada","message":"hello"}
部分見ること
リクエストラインメソッド、パス、HTTPバージョン
ヘッダー送信先、受け取りたい形式、送るデータ形式、認証情報
ボディPOSTやPUTで送る本文

最初から全部を暗記する必要はありません。まずは、メソッド、URL、Content-Type、認証情報、ボディの有無を見ます。

Step 1: メソッドを見る

リクエストの先頭にある GETPOST がメソッドです。

GET /articles?page=2 HTTP/1.1

代表的な読み方は次の通りです。

メソッド読み方
GETデータを取得したい
POST新しく作成したい、または処理を実行したい
PUT対象全体を置き換えたい
PATCH対象の一部を変更したい
DELETE対象を削除したい
OPTIONS利用できる通信条件を確認したい

たとえば、ログインフォームで GET が使われていたら注意が必要です。メールアドレスやパスワードがURLに出る可能性があります。ログインや問い合わせ送信のように本文を送る処理は、通常 POST で扱います。

Step 2: パスとクエリを見る

メソッドの次にある /articles?page=2 の部分は、サーバー内のどの場所を呼んでいるかを表します。

GET /search?q=javascript&page=1 HTTP/1.1

この例では、パスは /search、クエリは q=javascript&page=1 です。

部分意味
/searchどの機能を呼ぶか
q=javascript検索語
page=1ページ番号

検索、絞り込み、並び替え、ページ番号のような条件はクエリに入ることが多いです。一方で、パスそのものが間違っていると 404 Not Found になりやすいです。

DevToolsでは、Networkパネルの Headers にある Request URL を確認します。URLが想定と違う場合、フロント側のリンク、フォームの action、APIのベースURL設定を見直します。

Step 3: Hostを見る

Host ヘッダーは、どのドメイン宛てのリクエストかを示します。

Host: api.example.com

同じサーバーIPに複数のサイトが置かれていることがあるため、サーバーは Host を見て処理対象を判断します。

開発中にAPIがつながらない場合、次のようなミスがあります。

症状確認すること
ローカルAPIにつながらないlocalhost のポート番号
本番APIではなく検証APIに飛ぶ環境変数のAPI URL
サブドメインが違うapi.example.comwww.example.com の違い

Request URLHost が想定通りかを見るだけで、かなりの設定ミスを発見できます。

Step 4: Acceptを見る

Accept は、クライアントが受け取りたい形式をサーバーに伝えるヘッダーです。

Accept: application/json

よく見る値は次の通りです。

意味
text/htmlHTMLを受け取りたい
application/jsonJSONを受け取りたい
image/avif,image/webp,image/*画像を受け取りたい
*/*形式を強く指定しない

APIを呼んでいるのにHTMLのエラーページが返る場合、URLがAPIではなく画面用ルートを向いていることがあります。Accept だけで決まるわけではありませんが、クライアント側が何を期待しているかを見る手がかりになります。

Step 5: Content-Typeを見る

Content-Type は、リクエストボディの形式を表します。

Content-Type: application/json

サーバーはこの値を見て、本文をJSONとして読むのか、フォームとして読むのか、ファイルアップロードとして読むのかを判断します。

使われる場面
application/jsonJSON API
application/x-www-form-urlencoded通常のフォーム送信
multipart/form-dataファイルアップロード
text/plainプレーンテキスト送信

POST しているのにサーバーが値を受け取れない場合、まず Content-Type と実際のボディ形式が一致しているかを見ます。JSONを送っているのに Content-Type がない、またはフォーム形式として送っていると、サーバー側で空として扱われることがあります。

Step 6: CookieとAuthorizationを見る

ログインが関係するリクエストでは、認証情報を確認します。

Cookie: session_id=abc123
Authorization: Bearer xxxxxx
ヘッダー主な用途
Cookieブラウザのログインセッション
AuthorizationAPIトークン、Bearer Token、Basic認証

ログイン済みのはずなのに 401 Unauthorized になる場合、Cookieが送られていない、トークンが期限切れ、送信先ドメインが違う、CORS設定で認証情報が落ちている、などが考えられます。

本番の調査では、CookieやAuthorizationの値をそのまま共有しないようにします。スクリーンショットやログを出す前に、値を伏せます。

Step 7: ボディを見る

POSTPUTPATCH では、ヘッダーの下に本文が付くことがあります。

POST /api/users HTTP/1.1
Content-Type: application/json

{"name":"Ada","email":"ada@example.com"}

確認するポイントは次の通りです。

  • 必要な項目が入っているか
  • キー名がサーバー側の期待と一致しているか
  • 数値や真偽値が文字列になっていないか
  • 空文字や null を送っていないか
  • Content-Type と本文の形式が一致しているか

APIエラーでは、ステータスコードだけでなく、送ったボディの中身を見ることが重要です。サーバーが正しくても、フロント側が間違ったキー名で送っていればバリデーションエラーになります。

読み方の練習

次のリクエストを読んでみます。

POST /api/login HTTP/1.1
Host: app.example.com
Accept: application/json
Content-Type: application/json

{"email":"student@example.com","password":"secret"}

読み取り:

項目内容
目的ログイン処理
送信先app.example.com/api/login
期待する応答JSON
送る形式JSON
ボディメールアドレスとパスワード

このリクエストで失敗した場合は、まずURL、メソッド、JSONのキー名、Content-Type、レスポンスのステータスコードを確認します。

もう1つ見ます。

GET /dashboard HTTP/1.1
Host: app.example.com
Cookie: session_id=abc123
Accept: text/html

読み取り:

項目内容
目的ダッシュボード画面の取得
認証Cookieでログイン状態を送っている
期待する応答HTML
ボディなし

この場合、Cookieが送られているのにログイン画面へ戻されるなら、セッション期限切れ、Cookieのドメイン設定、サーバー側のセッション削除などを疑います。

DevToolsで見る場所

Chrome DevToolsでは、Networkパネルで対象リクエストを選びます。

見たいもの場所
URLとメソッドHeaders > General
リクエストヘッダーHeaders > Request Headers
クエリPayload または Headers
JSON本文Payload
フォーム本文Payload
CookieHeaders > Request Headers または Application

Networkを開く前に通信が終わっていると見えないことがあります。Networkパネルを開いてからページを再読み込みします。

まとめ

HTTPリクエストは、メソッド、パス、クエリ、HostAcceptContent-Type、認証情報、ボディの順に見ると整理できます。

特にAPIやフォーム送信で詰まったときは、画面のエラーメッセージだけで判断せず、実際にどんなリクエストが送られているかをDevToolsで確認します。

参考リソース

← 一覧に戻る
PR
PR
PR
PR