用語辞典・エラー・運用

404 Not Found

404 Not Foundとは

404 Not Found(フォー・オー・フォー・ノット・ファウンド)は、要求された資源をサーバー上で見つけられないことを示すHTTPステータスです。

オリジンサーバーへHTTP要求が届いたうえで、振り分け先資源の現在の表現データを見つけられない、または存在を明かしたくないときに返します。DNSエラーやネットワーク未到達より後の層です。

404が見えるなら、少なくとも何らかのHTTPサーバーやプロキシから応答を受け取れています。「インターネットにつながっていない」ことを直接示すコードではありません。

DNSとサーバー接続には成功し、資源探索で空の場所へ到達するパス誤り、削除、経路不足、存在秘匿を別々に調べる
ブラウザーからDNSとサーバー接続を通過した後、アプリケーションの経路階層木が空の資源棚へ到達し、パス誤り、削除、経路不足、権限秘匿の原因へ分かれるピクトグラム図解
図1同じ404ページが表示されても、CDN、リバースプロキシ、Webアプリケーションのフレームワーク、オリジンサーバーのどこが生成したかで修正場所は変わります。

よくある四つの原因

URLパス綴り・大文字小文字・符号化

サーバーによっては大文字と小文字を区別します。パーセント符号化や末尾のスラッシュも経路へ影響します。

静的ファイル配置・公開領域・出力漏れ

ファイルが存在しても、ドキュメントルートの外ならWeb上の資源として見つかりません。ビルド時の出力漏れも確認します。

アプリケーション経路メソッド・パスの組み合わせ

GET用の経路だけ、APIの版違い、引数不一致などを確認します。

非公開の資源存在を明かさない

権限拒否を404として返すセキュリティ方針があります。

404・410・DNSエラーを分ける

状態分かること調べる場所
404サーバーが現在の資源を見つけない、または隠すパス、経路、配置、権限
410 Gone資源が恒久的に利用不能とサーバーが認識削除方針、代替先
DNSエラー接続先アドレス等を名前から得られないリゾルバー、記録、委任

404だけでは一時的か恒久的かは分かりません。恒久削除を把握しているなら410、移転先があるなら301など、資源のライフサイクルに合うステータスを検討します。

単一-ページアプリケーションの404

SPAでクライアント側の経路制御を使うと、画面内の移動は動くのに、URLを直接再読込するとWebサーバーがファイルを探して404になることがあります。未知のパスをすべてindex.htmlへ書き換えつつ、アプリケーション内部で実在しない経路には正しい404の意味を返す設計が必要です。

静的ホスティングでは代替処理設定、基準パス、素材URL、大小文字を確認します。すべて200で索引.HTMLを返すと見かけ上の404になります。

キャッシュと修正後の確認

404は推測規則キャッシュ可能です。一時的な公開遅延で404を返す場合はキャッシュ制御を設計し、修正後もブラウザー・CDNのキャッシュ済み404が残っていないか確認します。

アクセスログの要求振り分け先、Host、メソッド、応答生成層、参照元を照合し、壊れた内部リンクを修正します。利用者向け404ページには検索や上位画面遷移を置けますが、ステータスは404のままにします。

404はHTTP接続後に振り分け先資源を見つけられない、または存在を公開しないステータスです。DNS・ネットワーク障害と分け、パス、公開配置、アプリケーションの経路、権限、キャッシュを順に調べます。

不在・存在秘匿・410との関係:RFC 9110「404 Not Found」

関連用語