多くのエラー コードについて読んだことがありますが、エラー コード 404 と 410 について少し混乱しています。
1 に答える
は404
、リソースが指定された場所に存在せず、おそらく一度も存在したことがないことを示します (または、サーバーは存在したかどうかわかりません)。
一方410
、 は、リソースがもう存在しないことを示しますが、以前は存在していました。検索エンジンやスパイダーなどの一部のクライアントにとっては、インデックスからこのリソースを削除できるため、これは有用なヒントです。
HTTP 1.1 の元のRFC 2616 セクション 10.4.11から:
410 応答は、主に、リソースが意図的に利用できないこと、およびサーバーの所有者がそのリソースへのリモート リンクを削除することを望んでいることを受信者に通知することにより、Web メンテナンスのタスクを支援することを目的としています。このようなイベントは、期間限定の販売促進サービスや、サーバーのサイトでもはや働いていない個人に属するリソースによく見られます。永久に利用できないすべてのリソースを「なくなった」とマークしたり、マークを一定期間保持したりする必要はありません。これはサーバー所有者の裁量に任されています。
また、両者の違いについては次のとおりです。
この状態 [410] は永続的なものと見なされると予想されます。リンク編集機能を持つクライアントは、ユーザーの承認後に Request-URI への参照を削除する必要があります。状態が永続的かどうかをサーバーが認識していないか、判断する機能がない場合は、代わりにステータス コード 404 (Not Found) を使用する必要があります。
後にRFC 7231 セクション 6.5.4で言い換えられましたが、意味は同じままです。
404 ステータス コードは、この表現の欠如が一時的か永続的かを示すものではありません。410 (Gone) ステータス コードは、元のサーバーが、おそらく何らかの構成可能な手段を通じて、状態が永続的である可能性が高いことを認識している場合、404 よりも優先されます。