解説
成功なのに本文がない?HTTPの204 No Contentを知ろう
通信が成功したのに、返ってきた本文が空。必ずしもエラーではなく、HTTPの204という「本文を返さない成功」の応答かもしれないよ。

通信が成功したのに、返ってきた本文が空。必ずしもエラーではなく、HTTPの204という「本文を返さない成功」の応答かもしれないよ。
ここでは、Webの通信で返る番号を見分ける練習をする。HTTPはブラウザとサーバーなどがやり取りする決まり。コードを書かず、架空の応答の読み方から始めよう。
200と204はどちらも成功の仲間
200 OKは成功を示し、通常は要求に応じた内容を返す。204 No Contentも要求の正常な処理を示すけれど、応答の本文は含めない。
たとえば、設定を保存したあとに新しいデータを返す必要がないAPIでは、204を使う設計がある。APIとは、プログラム同士が処理やデータをやり取りする入口のことだよ。何番を返すかは、そのAPIの仕様も確認する。
| 応答例 | 読み方 |
|---|---|
| 200とJSONの本文 | 成功してデータを返した例 |
| 204で本文なし | 成功し、返す本文がない |
| 500とエラーの本文 | サーバー内部の問題を示す例 |
「本文がない」だけを見て、同じ種類の失敗だとまとめないことが大切。
JSONとして読む前に状態を確かめる
JSONは、文字や数値を決まった書式で表すデータ形式。空の文字列は、JSONの値ではないよ。204の本文を必ずJSONとして解析しようとすると、成功した処理なのに解析エラーが出る場合がある。
作る側では、応答番号とAPIの仕様に合わせて読み方を分ける。204なら完了表示だけにし、データを返す契約なら内容も確認する、といった設計になる。
ブラウザの開発者ツールで見る場所
- 自分で管理する練習ページを開く。
- 開発者ツールのNetwork欄を開き、通信を選ぶ。
- Statusと、応答本文の有無を見る。
- その通信が画面のどの操作に対応するか確かめる。
練習のために削除や決済を実行する必要はないよ。管理していないサイトでは、見えている通信だけから内部の保存結果まで断定しない。
空の画面と204を混同しない
HTMLの表示が壊れて真っ白になることと、APIが意図して本文なしを返すことは別。画面を直す前に、どのURLがどの番号で返ったかを確認しよう。

みんなのコメント 0
感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。
最初のコメントをどうぞ。