508 Loop Detected

サーバーが処理中に無限ループを検出しました。

使いどころ

WebDAV、またはリダイレクトやプロキシのループ。

よくある原因と対処法

508 は WebDAV(RFC 5842)に由来し、Depth: infinity のリクエストを処理中にサーバーが無限ループを検出したことを示します。典型的には、バインディングによってコレクションが自分自身を含んでしまうケースです。WebDAV 以外ではまれですが、大きな例外が 1 つあります。CloudLinux を使った cPanel の共有ホスティングでは、「508 Resource Limit Is Reached」はアカウントが CPU、メモリ、プロセス数の上限に達したことを意味します。

プロキシは、リクエストのループに対して 508 などのエラーを使うことがあります。nginx の proxy_pass が自分自身のサーバー名を指している場合や、CDN のオリジンが CDN のホスト名に設定されている場合です。プロキシの転送先を確認し、Via ヘッダーや CDN-Loop ヘッダーが繰り返されていないか調べてください。共有ホスティングの場合は、アクセスログから重いスクリプトや攻撃的なボットを見つけて対処するか、より大きなプランに移行しましょう。

サーバーエラー (5xx)

5xx はサーバーエラーです。リクエストに問題がなくても、サーバーやその背後の何かが失敗しています。アラートを設定しておく価値があります。

レスポンスでの表示

HTTP/1.1 508 Loop Detected

返し方

Node.js / Expressres.status(508).end()
Python / Flaskreturn '', 508
nginxreturn 508;

確認方法

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

HTTP ステータスコードを開く