508 Loop Detected
Uso específico de WebDAV
El código de estado 508 Loop Detected se produce cuando el cliente envía una solicitud WebDAV para un directorio completo y el resultado crea un destino dentro del mismo árbol. Esto genera un bucle infinito de solicitud/respuesta con Depth: Infinity, y el servidor termina la operación entera.
Uso específico de cPanel / CloudLinux
El código de estado 508 Resource Limit Is Reached lo generan los entornos de alojamiento compartido que ejecutan cPanel con CloudLinux cuando se supera alguno de los límites de recursos de la cuenta. Algunos ejemplos de límites de recursos son el uso de CPU, la memoria física, el rendimiento de E/S y el número de procesos concurrentes (entry processes).
Impacto en SEO
Los motores de búsqueda tratan el 508 igual que los demás errores 5xx del servidor. Los fallos persistentes reducen la velocidad de rastreo y acaban eliminando del índice los URL afectados.
Ejemplo
Un cliente WebDAV solicita un listado recursivo de un directorio. El servidor detecta un bucle de enlaces dentro de la jerarquía de la colección y termina la solicitud.
Solicitud
PROPFIND /shared/ HTTP/1.1
Host: example.com
Depth: infinity
Content-Type: application/xml
Respuesta
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>
Cómo solucionarlo
Para WebDAV (508 Loop Detected):
Un PROPFIND con Depth: infinity topó con un enlace circular, es decir, una colección que contiene una referencia de vuelta a un elemento padre o a sí misma.
Para cPanel / CloudLinux (508 Resource Limit Is Reached):
La cuenta de alojamiento superó un límite de recursos: CPU, memoria, E/S o número de entry process.
Referencias de código
.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