Cómo funcionan realmente los redireccionamientos HTTP (301 frente a 302 frente a 307)

Explica la funcionalidad y los casos de uso de los códigos de estado de redireccionamiento HTTP más comunes: │ 301 (Movido permanentemente), 302 (Encontrado/Movido temporalmente) y 307 (Redireccionamiento temporal).

Beginner

Las redirecciones HTTP son una forma de enviar a los usuarios y a los motores de búsqueda a una URL diferente a la que solicitaron originalmente. Esto se hace mediante el envío por parte del servidor de un código de estado HTTP específico al cliente (navegador), que a continuación le indica que realice una nueva solicitud a la nueva URL.

A continuación se explica cómo funcionan los diferentes tipos:

1. 301 Movido permanentemente

  • Propósito: Indica que el recurso solicitado se ha movido permanentemente a una nueva URL.
  • Comportamiento: El navegador redirigirá automáticamente a la nueva URL y, lo que es más importante, normalmente almacenará esta redirección en la caché. Esto significa que las solicitudes posteriores a la URL original irán directamente a la nueva URL sin pasar primero por la antigua. Los motores de búsqueda también actualizan sus índices para que apunten a la nueva URL.
  • Cambio de método: El método HTTP (por ejemplo, GET, POST) utilizado en la solicitud original puede cambiar de POST a GET en la solicitud redirigida, aunque los navegadores modernos suelen conservar el método para los 301.
  • Casos de uso: Cuando una página tiene una nueva dirección permanente, se cambian los nombres de dominio o se aplica HTTPS.

2. 302 Encontrado (trasladado temporalmente)

  • Propósito: Indica que el recurso solicitado se encuentra temporalmente en una URL diferente. El servidor espera que el cliente siga utilizando la URL original para futuras solicitudes.
  • Comportamiento: El navegador redirige a la nueva URL, pero no almacena en caché la redirección. Las futuras solicitudes a la URL original seguirán dirigiéndose al servidor original, que volverá a emitir la redirección 302. Los motores de búsqueda no suelen actualizar sus índices para las redirecciones 302.
  • Cambio de método: Históricamente, los navegadores cambiaban el método HTTP de POST a GET para la solicitud redirigida, incluso si la original era POST. Este comportamiento sigue siendo habitual.
  • Casos de uso: Pruebas A/B, páginas de destino temporales o cuando un recurso no está disponible temporalmente en su ubicación habitual.

3. Redireccionamiento temporal 307

  • Finalidad: Similar al 302, indica que el recurso solicitado se encuentra temporalmente en una URL diferente. La diferencia clave es cómo maneja el método HTTP.
  • Comportamiento: El navegador redirige a la nueva URL y no almacena en caché la redirección.
  • Conservación del método: Es fundamental que una redirección 307 garantice explícitamente que el método HTTP utilizado en la solicitud original (por ejemplo, GET, POST, PUT) se conservará para la solicitud redirigida. Si la solicitud original era un POST, la solicitud redirigida también será un POST.
  • Casos de uso: Cuando se necesita una redirección temporal y es fundamental conservar el método HTTP original, como en el caso de los envíos de formularios. Es una alternativa más correcta semánticamente que 302 cuando la conservación del método es importante.