何が起きたのか?
410 は「ここに確かにあったけれど、もう永久に消した。戻る予定もない」というサインです。 教室で言えば、卒業した先輩が黒板に残していた言葉を、新学期に先生が消した。同じ文字をもう一度書く予定はない——そんな静かな終わりの宣言です。
404 とよく似ていますが、ニュアンスが違います。404 は「見つからない」(移動した可能性も残る)。410 は「あったけれど、もう戻らない」と能動的に告げます。クライアントには「リンクを外していい」「インデックスから消していい」というシグナルでもあります。
黒板からのひとこと
教室の掲示板には、文化祭の告知や昨年の連絡など、時期を過ぎた紙が貼られていることがあります。先生が新年度に入る前にそれを剥がし、もう貼り直さないと決めたら、それが 410 の状態です。
「探してもない」のではなく、「もう置きません」と決められている。だから検索エンジンも、依頼元のリンクも、潔く外していい。終わりを明示することは、混乱を残さない優しさでもあります。
解決への歩み
大丈夫、次はこうしてみよう:
- 代替の URL や新しい API を探す:移行先が告知されていることが多い
- リンク元を更新または削除:古いブックマークや参照を残さない
- クローラ向けにはキャッシュをパージ:検索エンジンは 410 を受けてインデックスから外す
- 廃止計画と通知を整える(管理者向け):サンセット (Sunset) ヘッダ、deprecation 期間、移行ガイドの提示を順に
実際にはこう見える
$ リクエスト
curl -i https://example.com/some/path ↓ レスポンス
HTTP/1.1 410 Gone
Content-Type: text/html; charset=utf-8
<!DOCTYPE html>
<html><body><h1>410 Gone</h1></body></html>