うまくいった証
202 は「君の依頼は確かに受け取った、ただし処理結果はあとで別途お伝えする」というサインです。 プールで例えると、「水泳大会のエントリーはちゃんと受け付けたよ。出走表は明日の朝に貼るから、そのとき確認してね」とコーチが言ってくれる——あの予約完了の感触です。
最終結果は返らないけれど、依頼そのものは確実にサーバーに届いた、と保証してくれる便利なサイン。バックグラウンドジョブや非同期 API 設計でよく使われ、レスポンスボディには進捗確認用の URL が入ることもあります。
プールからのひとこと
プールでの大会や検定の申込みは、その場で結果は出ません。受付の先生は「申込書を確かに受け取りました、結果は後日掲示します」と一言伝えて、用紙を引き出しにしまいます。生徒は安心して帰れる。
202 もそれと同じで、サーバーが「受理した、続きは別の経路で連絡する」と返している状態。最後の結果を知るには、別の API を叩いたり、Webhook を待ったりすることになります。
次への一歩
うまくいった、次はこうしてみよう:
- 進捗確認用の URL を保管:レスポンスや Location ヘッダのジョブ ID を記録
- ポーリングや Webhook で結果を待つ:頻度や上限を決めてから問い合わせる
- UI に「処理中」表示:ユーザーには「受付済み、結果は追って」と伝える
- キューと進捗 API を分けて設計 (管理者向け):受付・進行・完了を別々のエンドポイントで管理する
実際にはこう見える
$ リクエスト
curl -i https://example.com/some/path ↓ レスポンス
HTTP/1.1 202 Accepted
Content-Type: text/html; charset=utf-8
<!DOCTYPE html>
<html><body><h1>202 Accepted</h1></body></html>