何が起きたのか?
508 は「処理中に同じところを何度もぐるぐる回ることになり、サーバー側で止めました」というサインです。 教室で言えば、教科書のあるページに「前のページの説明を見よ」と書かれていて、その前のページにも「前のページの説明を見よ」と書かれていて……どこまで遡っても答えに辿り着かない、そんな参照地獄に近いです。
WebDAV のバインド (BIND) 機能や、ファイルシステムのシンボリックリンク、アプリ側の再帰処理などで起きます。サーバーが自衛のためにループを検知して打ち切るのは、無限に走り続けてリソースを食い潰すよりは健全な振る舞いです。
黒板からのひとこと
授業のプリントで、ある問題に「次の問題を先に解け」と書かれていて、その次の問題に「前の問題を先に解け」と書かれていたら、生徒は手の付けようがありません。先生はやがて「これはプリントの作りがおかしい」と気付き、印刷をやり直します。
508 もそれと同じで、構造そのものを見直す必要があります。クライアント側でできることは少なく、リソースの構成や設定を直すのは管理者の仕事です。
解決への歩み
大丈夫、次はこうしてみよう:
- アクセス先のリンク構造を疑う:別の URL で動くか確認、循環参照の可能性
- 時間を置いて再試行:直近のデプロイで誤った構成が入った場合は元に戻ることも
- 管理者へ詳細を共有:操作内容、対象 URL、再現手順を伝える
- 構造の整合性を点検(管理者向け):BIND/シンボリックリンク/参照グラフの循環検出を運用に組み込む
実際にはこう見える
$ リクエスト
curl -i https://example.com/some/path ↓ レスポンス
HTTP/1.1 508 Loop Detected
Content-Type: text/html; charset=utf-8
<!DOCTYPE html>
<html><body><h1>508 Loop Detected</h1></body></html>