El encabezado Retry-After es un encabezado de respuesta HTTP que indica a un cliente cuánto tiempo debe esperar antes de realizar una solicitud de seguimiento. Un servidor puede incluirlo en una respuesta 429 Too Many Requests, el código de estado para la limitación de tasa. Para un scraper, respetar este valor significa pausar tanto tiempo como el servidor solicitó, en lugar de adivinar y arriesgar más solicitudes bloqueadas.

El encabezado es opcional, por lo que una respuesta 429 puede llegar sin él. El RFC 6585 tampoco define cómo un servidor identifica al usuario o cuenta las solicitudes. Un límite puede estar vinculado a credenciales de inicio de sesión o a una cookie, no solo a una dirección IP.

Formatos de Valor Retry-After

  • Retraso en segundos: Un número entero no negativo, como Retry-After: 120.
  • Fecha HTTP: Una fecha después de la cual volver a intentar, como Retry-After: Wed, 21 Oct 2015 07:28:00 GMT.
  • Dónde aparece: Con respuestas 429, con 503 Service Unavailable para mostrar cuánto tiempo debe durar la interrupción, y con redirecciones como 301 para establecer un tiempo de espera mínimo.

Otros Encabezados de Límite de Tasa

  • Encabezados de proveedores: Algunas API añaden sus propios campos. La API REST de GitHub, por ejemplo, envía x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-used y x-ratelimit-reset.
  • Estándar propuesto: Un borrador de Internet de la IETF define los campos RateLimit y RateLimit-Policy para que los servidores puedan anunciar políticas de cuota y cuota restante. Aún es un borrador, no un RFC publicado.
  • Lógica de reintento: GitHub aconseja esperar el número de segundos en retry-after cuando esté presente, y aumentar la espera exponencialmente si las solicitudes siguen fallando.

Quién Respeta Retry-After

  • El soporte varía: MDN señala que el soporte del cliente y del servidor para Retry-After sigue siendo inconsistente.
  • Rastreadores de búsqueda: Algunos rastreadores, como Googlebot, lo respetan. Google dice que un sitio puede enviar Retry-After con una respuesta 503 o 429 para indicar a su rastreador cuándo volver a intentar.
  • Mantenlo breve: Google desaconseja servir 500, 503 o 429 para ralentizar el rastreo por más de 1-2 días. Si Googlebot ve estos códigos en la misma URL durante varios días, puede eliminar esa URL de su índice.

Términos Relacionados