404

状態符号 404 (HTTP)

[419] 404 (Not Found) は、対象資源が存在しないか、存在を明確にしたくないことを表します。

仕様書

意味

[416] 404 は、起源鯖対象資源の現在の表現を見つけられなかったか、 その存在を明らかにしたくないことを表します >>414

[412] 起源鯖は、対象資源の存在をも隠したいときは、 403 ではなく 404 を使っても構いません >>413

[417] 404 は、対象資源表現の不存在が一時的なものか、 永続的なものかは示しません。永続的なものであろうと起源鯖が分かっている時は、 410 がより好ましいです >>414

文脈

[2] PROPFIND 要求に対する応答multistatus 要素中の status では、指定された特性が存在しなかったことを表すために使います >>1

[3] LNR対象資源である時、特定の要求メソッド以外では 405 応答を返すことができます >>4

[6] PATCH 要求対象資源が存在しない時、 新しい資源を作成しても構いませんが、 404 応答を返すこともできます >>5

処理

[418] 404 応答は、キャッシュ可能です >>414

ソフト404

[8] Web業界の一部ではWebページソフト404であるか否かということがあります。

[9] 例えば Google Search Console がこの語を使っています。

[10] ソフト404は、実際の状態符号404 ではないものの、 当該Webページ内容が要求URLの不存在を表したと判断されたことを意味しています。

[11] 指定されたWebページが存在しないにも関わらず、 状態符号が適切に設定されないことが少なくないため、 そのような概念が実装されています。

[12] 例えば次のような理由で状態符号が適切に設定されないことがあります。

[15] ソフト404かどうかの判定は発見的手法で行われます。 実際にはページが存在するにも関わらず、 ソフト404と判定されてしまうことも珍しくありません。

[16] それで検索エンジン索引から除外されたりしてしまうのですから、 困ったものです。

[17] 例えばエラーについて説明したWebページソフト404判定されることがあります。 エラーに関する語句の出現が判定に関与しているためと思われます。

[18] ただし Google検索の場合、語句の出現だけを単純に見ているわけではなさそうです。

歴史

[415] RFC 1945 (HTTP/1.0); RFC 2068 & 2616 (HTTP/1.1) 10.4.5 404 Not Found

The server has not found anything matching the Request-URI. No indication is given of whether the condition is temporary or permanent.

サーバーは Request-URI と一致するものを見つけられませんでした。 条件が一時的なものか永続的なものかの案内はありません。

{1945,2068} If the server does not wish to make this information available to the client, the status code 403 ({1945} forbidden Forbidden) can be used instead. {2068,2616} The 410 (Gone) status code SHOULD be used if the server knows, through some internally configurable mechanism, that an old resource is permanently unavailable and has no forwarding address. {2616} This status code is commonly used when the server does not wish to reveal exactly why the request has been refused, or when no other response is applicable.

;サーバーがこの情報をクライアントに知らせたくないと思うのであれば、代わりに状態符号 403 (禁止) を使うことができます。 何らかの内部的な設定機構によって、古い資源が永続的に利用不能となり、転送番地もないとサーバーが知っている時には、 410 (逝去) 状態符号を使用するべきですこの状態符号 (訳注) 404 は、要求を拒否する実際の理由を晒したくないとサーバーが思っている時や、他の応答が適当でない時に広く使われています。

[411] RFC 7252 - The Constrained Application Protocol (CoAP) ( ( 版)) http://tools.ietf.org/html/rfc7252#section-5.9.2.5

[420] RFC 3507 - Internet Content Adaptation Protocol (ICAP) ( ( 版)) http://tools.ietf.org/html/rfc3507#section-4.3.3

[7] 「404」は部屋番号だった? 「Not Found」エラーにまつわる噂の真偽を、「生みの親」に聞いてみた|WIRED.jp () https://wired.jp/2018/01/25/history-of-the-404-error/

「404という数字は実は404号室に由来している」「その部屋は世界初のウェブサーヴァーが置かれたところで、スイスの欧州原子核研究機構(CERN)内にある」「ワールド・ワイド・ウェブ(WWW)を考案したティム・バーナーズ=リーがその部屋にオフィスを構えた」「彼はしょっちゅう行方をくらましていた」──といった具合だ。

こうしたエピソードに「やれやれ」とため息をつくのは、ロバート・カイリューである。バーナーズ=リーとともにWWWを開発したひとりで、ハイパーテキスト構造をつくり、のちにウェブへと進化させた人物だ。

そこでカイリューに、404エラーについてコメントを求めてみた。すると彼は「つまらない話」と一蹴し、気乗りしない様子で「そんな伝説はでたらめだ」と頑として譲らなかった。