うまくいった証
201 は「君のリクエストで新しいリソースが生まれた、その置き場所はここだよ」と教えてくれる成功サインです。 プールに例えると、新しい泳ぎのコースが追加され、「君のレーンはこちら、ここから始めてね」と先生が場所まで案内してくれる——そんな段取りの良さです。
Location ヘッダに新しいリソースの URL が入るのが大切な約束で、クライアントはこれを読んでブックマークするなり、続きの操作で使うなりできます。POST 後の挙動として、200 よりも丁寧で意味のある応答です。
プールからのひとこと
プールに新しいレーンを引いたとき、先生はただ「できた」と言うだけでなく、「3番目のレーン、向こうから3つ目だよ」と場所まで指してくれます。生徒は迷わずそのレーンに泳ぎに行ける。
201 もまさにそれと同じ役割で、「作ったよ」だけで終わらせず、「ここに置いたよ」まで伝える。クライアントがそのまま次の操作に移れる、思いやりのあるサインです。
次への一歩
ここから先:
LocationヘッダのURLを読む:作成されたリソースに直接アクセスできる- 作成されたデータを画面に反映:レスポンスボディや Location 先のデータを使う
- 冪等性を意識した設計:再送に備えて重複作成を防ぐ仕組みを持っておく
- API ガイドラインに 201 の使い分けを書く (管理者向け):チーム内で 200 と 201 をいつ返すかを揃える
実際にはこう見える
$ リクエスト
curl -i https://example.com/some/path ↓ レスポンス
HTTP/1.1 201 Created
Content-Type: text/html; charset=utf-8
<!DOCTYPE html>
<html><body><h1>201 Created</h1></body></html>