HTTPステータスコードの"404 Not Found"と"410 Gone"の違いは何でしょうか。 自分はHTTPステータスコードにはあまり詳しくないのですが、404と410はだいぶ似通っているように思えます。しかし別々に定義しているということは双方に微妙な差異があるのだとあるのだと思われますが、その差異、その違いは何でしょうか? 巷でよく言われているのは(本当か嘘かは分かりませんが)404はファイルが一時的に消去されたまたはファイル自体が見つからない場合に使用し、410はファイルが完全に消滅した、二度と復活することは無い場合に使用すると聞いたことがありますがこれであっているのでしょうか? またこれが仮に本当だとすると410は中々使用する機会が無いように思えます。というのは未来永劫絶対に復活することは無いのかと問われると流石に絶対とは言い切れないような気がします。 話が少しそれましたね。 改めて"404 Not Found"と"410 Gone"の違い、使い分け等を教えていただけると幸いです。 よろしくおねがいします。

通信プロトコル13,215閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

この回答はいかがでしたか? リアクションしてみよう

ThanksImg質問者からのお礼コメント

皆様回答ありがとうございます。こんなにも多くの回答をいただけるとは予想していませんでした。

お礼日時:2011/5/11 16:31

その他の回答(5件)

正確な定義は他の回答者さんが丁寧に答えてくださっているので: googleのボットはクロールしている際に410を見つけると、 再度訪ねて来なくなるそうです。 401だとまた訪ねてくるとか。 検索エンジンによっても違うでしょうが、参考までに。

サーバ管理者が、アクセス禁止とリンク削除依頼を目的に、410コードを設定します。 410 Gone表示 ユーザ:あぁ、もうココなくなったのか。 404 Not Found表示 ユーザ:サーバメンテ中かな?もう少しまってみよう。 未だと別途ソーリーページなどを利用したりするのが普通ですが・・・ 正直、古式ゆかしい仕来りであるカンジは否めない。

HTTPステータスコードの "404 Not Found" と "410 Gone" の使い分けについては、RFC 2616 に記述されています。 10.4.5 404 Not Found このステータスコードは一般に、サーバが何故リクエストが拒否したかを正確には表したく無い時、あるいは他に適切なレスポンスが無い時に使われる。 10.4.11 410 Gone 410 レスポンスは主に、リソースが故意に利用不可能であったり、サーバのオーナーがリソースへのリモートリンクを削除したい事を受信者に通知する事でウェブメンテナンスの作業を補助する意図を持つ。 [参考記事] ハイパーテキスト転送プロトコル -- HTTP/1.1 (RFC 2616) http://www.studyinghttp.net/cgi-bin/rfc.cgi?2616#Sec10.4.5

意味はあってます。 404と410の大きな違いは、設定です。 404は、ファイルさえ無ければ勝手に出ます。 410は、ファイルが消えたということをサーバに設定して、初めて出ます。 (設定しないと404になる) 明示的に設定を行うからこそ、410の意味合いは強くなります。 多くの管理者はこの設定をしないので、ほとんどの場合において404が出ます。 「恒久的に無くなるか自信がない」 → 「設定も面倒だし404でいいんじゃね?」的な感じ。

404は単に見つからない場合、410は恒久的に存在しないことが判っている場合に使用します。 未来永劫どうなのかという意見はもっともかもしれませんが、RFCでそう定義しちゃってるのでねぇ・・・