要約

  • 404は現在その資源の表現がないことを伝え、いつまで続くかは未定のままにする。410 Goneは、元のサイトが長期の退場と判断したことを伝える。
  • 1997年と1999年のHTTP/1.1仕様には、リンクを書き換えられるクライアントが利用者の承認後に古い参照を消すという提案まであった。現在の仕様は保守の通知を残している。

ネット上には、閉まった店の住所を載せた案内状が大量に残る。訪ねてみて留守なのか、廃業したのか、外からは分かりにくい。HTTPはその違いを短い返事に押し込んだ。404は「今は見つからない」、410は「ここはもう閉めたらしい」。後者には、案内状を書いた人への伝言も託されていた。

1996年5月のHTTP/1.0仕様、RFC 1945に載っていたのは404 Not Foundだ。欠けている状態が一時的か恒久的かは示さない。状態コードの一覧に410はまだない。訪問者は今日の不在を知っても、明日の予定は読めなかった。

1997年1月のRFC 2068はHTTP/1.1に410 Goneを加えた。資源がそのサーバーで利用できず、転送先も分からず、状態が恒久的だと考えられる場合だ。さらに仕様は、リンク編集機能を持つクライアントに対し、利用者の承認を得てから元のアドレスへの参照を削除するよう求めていた。閉店する店は札を出せる。ほかの人の住所録に線を引くのは、その持ち主の判断を経てからだ。

目的はウェブの掃除だった。同じRFCは、サイトの所有者が遠くのリンクを取り除いてほしいと知らせるための応答だと説明する。期限付きの宣伝や、すでに組織を去った人のページが例に挙がる。どの廃止済みアドレスに410を付け、いつまで表示するかもサイト側が決める。古い番地を覚えているからこそ、そこに貼り紙を出せる。

1999年6月のRFC 2616にも、利用者の承認後に参照を消すという指示が残った。ここで想定されているのは、異なる持ち主の仕事の受け渡しである。元サイトには退場の事情が分かる。引用した著者には、そのリンクを置いた理由が分かる。通知だけで、引用文脈まで書き換わるわけではない。

2014年のRFC 7231では、410の節からリンク編集ツールへの削除指示が消えた。資源が意図的に利用できなくなり、遠くのリンクも整理してほしいという保守上の意味は続く。元サイトが長期の欠落と分かっているときは404より410を選ぶ、という違いも明確になった。

閉店前に知らせる道具も生まれた。2019年のRFC 8594は、URIが将来応答しなくなる見込みを日付で告げるSunsetヘッダーを定義した。仕様の例では、過去に割り当てたURIを覚えている書庫なら期限後に410を返せる。記録がなければ404になるかもしれない。予告を受けた利用者は移行を考える時間を持てる。

2022年のRFC 9110は現在の意味を保つ。404は不在の期間を決めず、410は長く続きそうな退場と、外部リンクを整理してほしいという元サイトの意思を伝える。どちらも明示的な制御がなければヒューリスティックにキャッシュされ得る。元サイトは自分の住所について返事をする。別のページに書かれたリンクは、その著者が扱う。

閉店のお知らせを掲げても、配られた案内状が一斉に書き換わることはない。410は扉の伝言板だ。案内状を直す人に、ようやく事情が届く。