うまくいった証
204 は「リクエストは成功したけれど、わざわざ返すような本文はないよ」という静かな完了サインです。 プールで例えると、課題の周回を泳ぎきって、特にコメントもなく先生が黙って頷くだけ——あの「言わずもがなのOK」に似ています。
DELETE で削除が完了したときや、PUT で値だけ更新して返す内容がないときに自然に使われます。本文を持たないので、ブラウザは画面を再描画せず、そのままの表示を保ちます。通信量を抑えたい API には頼もしい選択肢です。
プールからのひとこと
プールでの居残り練習が終わったとき、先生が長い講評をせず、ただ「お疲れさま」とだけ言って帰してくれることがあります。それで十分わかる。新しい指示はないし、できたという事実だけが伝われば終わりでいい。
204 もそれと同じ温度感の応答です。報告書はないけれど、ちゃんとうまくいった。次にどうするかはクライアントの判断に委ねられている、軽くて静かな成功サインです。
次への一歩
うまくいった、次はこうしてみよう:
- 画面状態をローカルで更新:レスポンスボディがないので UI 側で楽観的に反映
- 削除や更新のフィードバックを表示:ユーザーには「完了しました」を別途伝える
- ボディを期待するコードに注意:
response.json()を呼んで失敗するパターンに気をつける - API 設計のガイドラインに含める (管理者向け):いつ 200、いつ 204 を返すかチームで揃える
実際にはこう見える
$ リクエスト
curl -i https://example.com/some/path ↓ レスポンス
HTTP/1.1 204 No Content
Content-Type: text/html; charset=utf-8
<!DOCTYPE html>
<html><body><h1>204 No Content</h1></body></html>