Slate Errors

Success (2xx)

208

Already Reported

— 既に報告済み

まずは確認: よくある原因 TOP3

  1. WebDAV のバインディングで重複を避けたいとき
    同じリソースが複数のパスに紐づいているケースの整理
  2. 207 (Multi-Status) と組み合わせて使われる
    既に出した内容を再度書かないという略記
  3. ループ的構造のリソース列挙時
    一度報告済みの内容を「省略します」と明示する役割

うまくいった証

208 は「そのリソースについては、もう前のところで報告したから、ここでは省略するね」というサインです。 プールに例えると、出場者名簿で同じ生徒が複数のリレーチームに重複登録されていたとき、「この子のタイムは前のリレー欄に書いたよ。ここでは省略」とコーチが見やすく整理してくれる——あの「再掲はしません」の伝え方に似ています。

WebDAV のバインディング (RFC 5842) で定められた、かなり専門的なステータスです。一般の REST API でこのコードに出会うことはほぼありませんが、レスポンスを軽く保つ知恵として知っておく価値はあります。

プールからのひとこと

プールでの記録掲示で、同じ生徒の名前が個人種目とリレーで両方に並ぶことがあります。タイム表示は個人種目で済ませ、リレー欄では「個人種目を参照」とだけ書く。重複を省くだけで、紙はずっと読みやすくなります。

208 もそれと同じ整理術です。「既に書いたものをまた書くと冗長だから略すね」という、レスポンスを丁寧にしてくれる小さな配慮。出会う場面は限られても、設計の考え方として参考になります。

次への一歩

ここから先:

  1. 既に処理した結果を再利用:同じリソースは別の場所で取得済みのデータを使う
  2. バインディング構造を意識:同じリソースが複数のパスに紐づくモデルを把握
  3. 207 と組み合わせて読む:単独ではなく Multi-Status の中で意味を持つ
  4. WebDAV を使わないなら無視で OK (管理者向け):一般 REST API では実装する必要はない

実際にはこう見える

$ リクエスト

curl -i https://example.com/some/path

↓ レスポンス

HTTP/1.1 208 Already Reported
Content-Type: text/html; charset=utf-8

<!DOCTYPE html>
<html><body><h1>208 Already Reported</h1></body></html>

似ているケース

もっと知りたい