Slate Errors

Client Error

410

Gone

— 永久に削除されました

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

  1. キャンペーンや古い API を意図的に廃止
    提供終了済みのエンドポイントへ古いクライアントが叩きに来ている
  2. 法的・コンプライアンス上の削除
    本人請求や規約違反で恒久的に取り下げたコンテンツ
  3. バージョン廃止 (deprecation) の徹底
    新版へ完全移行済みで、後方互換も切ったケース

何が起きたのか?

410 は「ここに確かにあったけれど、もう永久に消した。戻る予定もない」というサインです。 教室で言えば、卒業した先輩が黒板に残していた言葉を、新学期に先生が消した。同じ文字をもう一度書く予定はない——そんな静かな終わりの宣言です。

404 とよく似ていますが、ニュアンスが違います。404 は「見つからない」(移動した可能性も残る)。410 は「あったけれど、もう戻らない」と能動的に告げます。クライアントには「リンクを外していい」「インデックスから消していい」というシグナルでもあります。

黒板からのひとこと

教室の掲示板には、文化祭の告知や昨年の連絡など、時期を過ぎた紙が貼られていることがあります。先生が新年度に入る前にそれを剥がし、もう貼り直さないと決めたら、それが 410 の状態です。

「探してもない」のではなく、「もう置きません」と決められている。だから検索エンジンも、依頼元のリンクも、潔く外していい。終わりを明示することは、混乱を残さない優しさでもあります。

解決への歩み

大丈夫、次はこうしてみよう:

  1. 代替の URL や新しい API を探す:移行先が告知されていることが多い
  2. リンク元を更新または削除:古いブックマークや参照を残さない
  3. クローラ向けにはキャッシュをパージ:検索エンジンは 410 を受けてインデックスから外す
  4. 廃止計画と通知を整える(管理者向け):サンセット (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>

似ているケース

もっと知りたい