508 Loop Detected
WebDAV に固有の用法
508 Loop Detected ステータスコードは、クライアントがディレクトリ全体に対する WebDAV リクエストを送信し、その結果が同じツリー内にターゲットを生成する場合に発生します。これは Depth: Infinity による無限のリクエスト/レスポンスのループを生み、サーバーは操作全体を打ち切ります。
cPanel / CloudLinux に固有の用法
508 Resource Limit Is Reached ステータスコードは、CloudLinux を伴う cPanel を実行している共有ホスティング環境で、アカウントのリソース制限のいずれかを超えた場合に生成されます。リソース制限の例としては、CPU 使用率、物理メモリ、I/O スループット、同時プロセス数(entry processes)があります。
SEO への影響
検索エンジンは 508 を他の 5xx サーバーエラーと同じように扱います。障害が継続するとクロール頻度が低下し、最終的に該当する URL がインデックスから削除されます。
例
WebDAV のクライアントが再帰的なディレクトリ一覧を要求します。サーバーはコレクションの階層内にバインディングのループを検出し、リクエストを打ち切ります。
リクエスト
PROPFIND /shared/ HTTP/1.1
Host: example.com
Depth: infinity
Content-Type: application/xml
レスポンス
HTTP/1.1 508 Loop Detected
Content-Type: text/html; charset=UTF-8
Content-Length: 174
<html>
<head>
<title>Loop Detected</title>
</head>
<body>
<p>The server detected an infinite loop
while processing the directory tree.</p>
</body>
</html>
対処方法
WebDAV の場合(508 Loop Detected):
Depth: infinity を伴う PROPFIND が循環バインディングに行き当たりました。コレクションが親または自身への参照を含んでいる状態です。
cPanel / CloudLinux の場合(508 Resource Limit Is Reached):
ホスティングのアカウントが、CPU、メモリ、I/O、entry process 数のいずれかのリソース制限を超えました。
コードリファレンス
.NET
HttpStatusCode.LoopDetected
Rust
http::StatusCode::LOOP_DETECTED
Rails
:loop_detected
Go
http.StatusLoopDetected
Symfony
Response::HTTP_LOOP_DETECTED
Python3.5+
http.HTTPStatus.LOOP_DETECTED
Apache HttpComponents Core
org.apache.hc.core5.http.HttpStatus.SC_LOOP_DETECTED
Angular
@angular/common/http/HttpStatusCode.LoopDetected