DNS RobotDNS Propagation Checker
InicioDNSWHOISIPSSL
DNS RobotDNS Propagation Checker

Kit de herramientas DNS de nueva generación

Política de PrivacidadTérminos de ServicioAcerca de NosotrosBlogContacto

Herramientas DNS

Consulta DNSDominio a IPConsulta NSConsulta MXConsulta CNAMEVer todo

Herramientas de Correo

Verificador de Registro SPFVerificador DMARCVerificador DKIMHerramienta de Prueba SMTPAnalizador de Cabeceras de CorreoVer todo

Herramientas Web

Consulta WHOISDisponibilidad de DominioBuscador de SubdominiosDetector de CMSAnalizador de EnlacesVer todo

Herramientas de Red

Herramienta PingTracerouteVerificador de PuertosVerificador de Cabeceras HTTPVerificador de Certificado SSLVer todo

Herramientas IP

Consulta de IPCuál Es Mi IPVerificador de Lista Negra IPIP a HostnameConsulta ASNVer todo

Herramientas Útiles

Escáner de Código QRGenerador de Código QRUPI QR Code GeneratorWiFi QR Code GeneratorTraductor de Código MorseVer todo
© 2026 DNS Robot. Desarrollado por: ❤ Shaik Brothers
Todos los sistemas operacionales
Made with
Inicio/Blog/Código de Estado HTTP 302 (302 Found): Significado y Cuándo Usarlo

Código de Estado HTTP 302 (302 Found): Significado y Cuándo Usarlo

Shaik Vahid26 abr 20269 min de lectura
Infografía del código de estado HTTP 302 mostrando el flujo de redirección temporal con cabecera Location y comparación 301 vs 302 vs 307
Infografía del código de estado HTTP 302 mostrando el flujo de redirección temporal con cabecera Location y comparación 301 vs 302 vs 307

Punto clave

El código de estado HTTP 302 (302 Found) es una redirección temporal: el recurso solicitado está temporalmente en una URL diferente indicada por la cabecera Location, pero la URL original debe seguir usándose para futuras solicitudes. Usa 302 para redirecciones de corto plazo (login, A/B testing, mantenimiento) y 301 solo cuando el cambio sea permanente. Para preservar solicitudes POST a través de la redirección, usa 307 en lugar de 302.

Advertisement

¿Qué Es el Código de Estado HTTP 302?

El código de estado HTTP 302 — oficialmente llamado 302 Found — es un código de respuesta HTTP que indica al cliente (normalmente un navegador) que el recurso solicitado ha sido movido temporalmente a otra URL. La nueva URL se proporciona en la cabecera Location de la respuesta, y el cliente debe obtener el recurso desde allí solo para esta solicitud.

Como el cambio es temporal, el cliente debe seguir usando la URL original para futuras solicitudes. Los motores de búsqueda, navegadores y marcadores no deben reemplazar la URL original con la URL de destino. Esta es la diferencia clave entre HTTP 302 y 301 Moved Permanently.

El código 302 pertenece a la clase 3xx de redirección de los códigos de estado HTTP, definida en RFC 9110. A pesar del nombre histórico 'Found', el cuerpo de la respuesta casi nunca se usa — los navegadores modernos siguen inmediatamente la cabecera Location sin renderizarlo.

Nota

Definición rápida: Una respuesta 302 significa 'el recurso que pediste está temporalmente aquí — obtenlo desde la URL en la cabecera Location, pero sigue usando la URL original la próxima vez.'

Anatomía de una Respuesta 302

Una respuesta de código de estado HTTP 302 siempre contiene dos elementos esenciales: la línea de estado en sí y una cabecera Location que apunta a la nueva URL. Sin una cabecera Location válida, el cliente no puede seguir la redirección.

  • Línea de estado — HTTP/1.1 302 Found (o HTTP/2 302 en HTTP/2)

  • Cabecera Location — la URL de destino que el cliente debe seguir (obligatoria)

  • Cache-Control — normalmente no-cache para que los navegadores no almacenen el destino permanentemente

  • Cuerpo — típicamente vacío, aunque los servidores pueden incluir una pequeña página HTML para clientes legacy (<html><body><a href="...">Haz clic aquí</a></body></html>)

http
HTTP/1.1 302 Found
Location: https://www.example.com/new-page
Content-Type: text/html; charset=UTF-8
Content-Length: 0
Cache-Control: no-cache, no-store
Date: Mon, 27 Apr 2026 14:00:00 GMT

Consejo

Siempre define Cache-Control: no-cache en una respuesta 302. Sin esto, algunos navegadores pueden cachear la redirección durante la sesión y no volver a verificar la URL original — anulando la parte 'temporal' de la redirección.

La cabecera Location puede ser una URL absoluta (https://example.com/path) o relativa al path (/path). Los clientes HTTP modernos aceptan ambas, aunque las URLs absolutas se recomiendan por claridad.

302 vs 301 vs 307 vs 308: ¿Qué Redirección Usar?

HTTP define cinco códigos de redirección comunes, y elegir el correcto importa para caché, SEO y preservación del método de solicitud. Usa esta tabla como matriz de decisión:

CódigoPermanencia¿Método Preservado?¿Cacheado por Navegadores?Mejor Para
301 Moved PermanentlyPermanentePuede cambiar POST→GETSí (agresivamente)Cambios permanentes de URL, migraciones de dominio
302 FoundTemporalA menudo cambia POST→GETNoFlujos de login, A/B testing, mantenimiento
303 See OtherTemporalSiempre cambia a GETNoPatrón POST/Redirect/GET tras envío de formulario
307 Temporary RedirectTemporalSí — preservadaNoRedirecciones temporales que deben mantener POST/PUT
308 Permanent RedirectPermanenteSí — preservadaSíRedirecciones permanentes que deben mantener POST/PUT

Advertencia

Nunca uses 302 para un cambio permanente (p. ej. cambio de dominio). Los motores de búsqueda tratan 302 como temporal y no transfieren señales de ranking a la nueva URL. Para cambios permanentes, usa siempre 301 o 308.

La recomendación moderna: si necesitas una redirección temporal y quieres ser inequívoco sobre el manejo del método, usa 307 en lugar de 302. El código 307 se añadió en HTTP/1.1 precisamente porque los navegadores históricamente violaron la especificación al cambiar POST por GET en un 302 — y ese comportamiento incorrecto se hizo tan extendido que se convirtió en el estándar de facto.

¿Cuándo Usar una Redirección 302?

Usa el código de estado HTTP 302 siempre que la redirección sea genuinamente temporal — es decir, cuando esperas eliminar o cambiar el destino de la redirección en el futuro. Casos de uso legítimos comunes:

  • Redirecciones de login — Enviar a un usuario no autenticado de /dashboard a /login, y de vuelta tras iniciar sesión

  • A/B testing — Enrutar al 50% de usuarios a una variante sin cambiar la URL canónica

  • Páginas de mantenimiento — Redirigir todo el tráfico temporalmente a /maintenance mientras parchas el servidor

  • Enrutamiento por geolocalización — Enviar visitantes de / a /es o /us según su país, manteniendo / como entrada canónica

  • Redirecciones móviles — Redirigir a usuarios de smartphone de example.com a m.example.com (aunque hoy se prefiere diseño responsivo)

  • Páginas de productos sin stock — Enviar compradores a la categoría hasta que el producto vuelva al stock

  • URLs promocionales de corta duración — /black-friday redirigiendo a la landing solo durante la promoción

Si alguno de estos se vuelve permanente, cambia a 301. Los motores de búsqueda esperan varios meses antes de tratar una 302 duradera como 301, así que dejar un cambio permanente en 302 cuesta señales de ranking durante ese período.

Advertisement

Cómo Enviar un Código de Estado 302

La mayoría de servidores web y frameworks tienen helpers integrados para enviar una redirección 302. Abajo los patrones más comunes. Cada uno emite HTTP 302 Found con una cabecera Location — las únicas dos cosas que una respuesta 302 estrictamente necesita.

Nginx

En Nginx, usa la directiva return con el código 302 (el predeterminado si omites el código también es 302):

nginx
server {
    listen 80;
    server_name example.com;

    # Redirección temporal (302 Found)
    location /old-page {
        return 302 https://example.com/new-page;
    }
}

Apache (.htaccess)

En Apache, usa Redirect con el código 302 o RewriteRule con el flag [R=302,L]:

apache
# Redirección temporal simple
Redirect 302 /old-page https://example.com/new-page

# O con mod_rewrite para coincidencia de patrones
RewriteEngine On
RewriteRule ^maintenance$ /maintenance.html [R=302,L]

Node.js (Express)

El método res.redirect() de Express usa 302 por defecto cuando no se proporciona código:

javascript
// Redirección temporal (302 Found por defecto)
app.get('/dashboard', (req, res) => {
  if (!req.user) {
    return res.redirect('/login') // envía 302
  }
  // ...renderizar dashboard
})

// O sé explícito:
res.redirect(302, '/login')

Consejo

Si necesitas preservar el método (POST, PUT, DELETE), usa res.redirect(307, '/new-url') en lugar de 302. Los navegadores degradan un POST 302 a GET — 307 mantiene el método original.

Cómo Probar un Código de Estado 302

Después de implementar una redirección 302, verifica que funciona correctamente. La forma más rápida es curl desde tu terminal — muestra el código de estado exacto y la cabecera Location sin interferencia del caché del navegador.

bash
# Mostrar solo cabeceras de respuesta (-I) sin seguir la redirección
curl -I https://example.com/old-page

# Salida esperada:
# HTTP/2 302
# location: https://example.com/new-page
# cache-control: no-cache
# date: Mon, 27 Apr 2026 14:00:00 GMT

# Seguir toda la cadena (-L) y mostrar cada salto
curl -ILs https://example.com/old-page | grep -i 'HTTP/\|location:'

Nota

Las DevTools del navegador también funcionan: abre la pestaña Network, activa Preserve log y carga la URL. Cada redirección aparece como una entrada separada con su código de estado y cabecera Location. Es la forma más fácil de depurar cadenas de múltiples saltos.

Si no tienes acceso a la terminal, usa el Comprobador de Redirecciones gratuito de DNS Robot para rastrear toda la cadena desde una ubicación neutral, o el Comprobador de Cabeceras HTTP para inspeccionar las cabeceras crudas — ambos eluden el caché del navegador.

Redirecciones 302 y SEO

Un código de estado HTTP 302 dice a los motores de búsqueda: 'este cambio es temporal, mantén la URL original en el índice.' Eso tiene consecuencias directas para las señales de ranking.

Según Google Search Central, una 302 no transfiere las señales de ranking de la URL original al destino de la redirección como lo hace una 301. La URL original se mantiene canónica. Google aún puede indexar la página de destino si otras señales de canonicalización (enlaces internos, sitemap, hreflang) apuntan a ella — pero la 302 en sí no es una señal canónica.

  • Usa 301 para cambios permanentes — Cambios de dominio, cambios de estructura URL, consolidación de páginas

  • Usa 302 para cambios temporales — Flujos de login, A/B testing, mantenimiento, enrutamiento regional

  • No dejes un cambio permanente en 302 — Google espera meses antes de tratar una 302 duradera como 301, costándote equity de ranking

  • Evita cadenas — A → 302 → B → 302 → C diluye señales y ralentiza la carga. Cada salto añade latencia

Advertencia

Si ves redirecciones 302 en URLs que deberían posicionarse (homepage, landing pages clave), audítalas con el Comprobador de Redirecciones de DNS Robot. Una 302 mal configurada en un cambio permanente puede matar rankings silenciosamente.

Por Qué un 302 Cambia las Solicitudes POST a GET

Este es el comportamiento más sorprendente de HTTP 302. La RFC original decía que los clientes debían preservar el método al seguir una redirección. Pero los navegadores tempranos — Mosaic, Netscape, IE — todos cambiaron POST a GET en una 302, y ese comportamiento incorrecto se hizo tan extendido que se estandarizó en el WHATWG Fetch Standard.

Hoy, cuando un navegador envía un POST /login y el servidor responde con 302 Found, el navegador automáticamente emite un GET /next-page contra el destino. Los datos del formulario se descartan. Esto rara vez es lo que pretenden los desarrolladores del servidor.

http
# Lo que envías:
POST /submit-form HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded

name=Alice&email=alice@example.com

# El servidor responde con 302:
HTTP/1.1 302 Found
Location: /thank-you

# El navegador sigue con GET (¡datos del formulario descartados!):
GET /thank-you HTTP/1.1
Host: example.com

Consejo

Regla práctica: GET → 302 está bien, POST → 302 es arriesgado. Para envíos de formulario, prefiere 303 See Other (GET intencional en la siguiente página) o 307 Temporary Redirect (mantener el POST).

Si la redirección necesita preservar el método original (POST sigue siendo POST, PUT sigue siendo PUT), usa 307 Temporary Redirect en lugar de 302. Si quieres descartar intencionalmente el cuerpo y cambiar a GET — el patrón clásico POST/Redirect/GET — usa 303 See Other. Ambos son inequívocos; 302 no lo es.

Advertisement

Errores 302 Comunes y Cómo Solucionarlos

Cuando HTTP 302 va mal, suele aparecer como uno de estos síntomas. La mayoría tiene soluciones sencillas:

  • `Recibir 302 en lugar de 200` — El servidor está redirigiendo cuando no debería. Verifica .htaccess, configuración de Nginx o middleware del framework

  • `302 sin cabecera Location` — Respuesta inválida. Los navegadores mostrarán página en blanco. Asegúrate de que tu código establece la cabecera Location antes de enviar el estado

  • `302 redirigiendo a sí misma` — Bucle de redirección. La URL Location coincide con la URL de solicitud. Verifica la regla por condiciones faltantes

  • `302 descartando datos del formulario` — POST → 302 → GET descarta el cuerpo. Cambia a 307 Temporary Redirect para preservar el POST

  • `302 cacheada por el navegador` — Servidor con bug estableció Cache-Control: max-age=... en la redirección. Añade Cache-Control: no-cache y limpia el caché

  • `302 en producción pero no en local` — Generalmente un CDN o load balancer añadiendo redirecciones. Prueba directamente contra el origin para aislar

Nota

Si una 302 está ocurriendo inesperadamente, el paso de depuración más rápido es curl -I <url> directamente contra tu servidor de origen (eludiendo el CDN). Si el origin devuelve 200 directamente, la 302 está siendo inyectada por tu CDN, proxy o load balancer.

Bucles de Redirección 302: Cómo Diagnosticar

Un bucle de redirección ocurre cuando la URL A devuelve un 302 a la URL B, y la URL B devuelve un 302 a A. Tras 20 saltos (en Chrome y Firefox), el navegador muestra ERR_TOO_MANY_REDIRECTS y se rinde.

La causa más común es un conflicto SSL/HTTPS entre un CDN (como Cloudflare) y el servidor de origen: el CDN se conecta al origin por HTTP, el origin redirige HTTP→HTTPS, el CDN quita HTTPS y se conecta por HTTP de nuevo — bucle infinito.

bash
# Rastrear toda la cadena (limitar a 10 saltos para evitar bucles infinitos)
curl -ILs --max-redirs 10 https://example.com 2>&1 | grep -i 'HTTP/\|location:'

# Ejemplo de un bucle:
# HTTP/2 302
# location: http://example.com/
# HTTP/1.1 302 Found
# Location: https://example.com/
# HTTP/2 302
# location: http://example.com/  <-- bucle confirmado

Si ves dos URLs alternándose en las cabeceras Location, has confirmado un bucle de 302. Para una guía completa, ve nuestro post de ERR_TOO_MANY_REDIRECTS. El Comprobador de Redirecciones de DNS Robot rastrea toda la cadena desde una ubicación neutral y se detiene en el punto del bucle.

Mejores Prácticas para el Código de Estado 302

Enviar 302 Found correctamente evita la mayoría de los bugs que los desarrolladores enfrentan al implementar redirecciones:

  • Siempre incluir cabecera Location — Una 302 sin Location es inválida y se renderiza como página en blanco

  • Siempre establecer Cache-Control: no-cache — De lo contrario algunos navegadores cachean la redirección durante la sesión, rompiendo el contrato 'temporal'

  • Usar URLs absolutas en Location — https://example.com/new es inequívoco; /new funciona pero puede romperse detrás de proxies que cambian el host

  • Mantener redirecciones a un salto — A → 302 → B está bien; A → 302 → B → 302 → C ralentiza carga y diluye señales

  • No redirigir desde POST a otra página con 302 — Usar 303 (GET intencional) o 307 (preservar POST)

  • Auditar redirecciones mensualmente — Las redirecciones temporales antiguas suelen sobrevivir a su razón. Verificar con Redirect Checker

  • Cambiar a 301 cuando el cambio se vuelve permanente — No dejar un cambio permanente en 302 más de unas semanas

Comportamiento del Navegador y la Caché

Diferentes navegadores e intermediarios manejan HTTP 302 de forma ligeramente diferente. Conocer las peculiaridades ahorra tiempo de depuración:

ClienteComportamiento por Defecto en 302Caché por Defecto
Chrome / EdgeAuto-sigue, cambia POST→GETNo cacheada salvo que las cabeceras lo digan
FirefoxAuto-sigue, cambia POST→GETNo cacheada salvo que las cabeceras lo digan
SafariAuto-sigue, cambia POST→GETCaché de redirecciones algo más agresiva
curl (predeterminado)NO sigue — muestra 302 + LocationSin caché
curl -LSigue hasta --max-redirs (predeterminado 50)Sin caché
wget (predeterminado)Auto-sigue hasta --max-redirect=20Sin caché
GooglebotSigue, trata como señal temporalRe-rastrea la URL original

Para verificar comportamientos en casos límite (métodos POST, bucles infinitos, presencia de cabeceras), el Comprobador de Cabeceras HTTP de DNS Robot muestra la respuesta cruda sin reescritura de método del lado del navegador. Lee más sobre redirecciones temporales en la documentación de MDN y la especificación RFC 9110.

Advertisement

Rastrea cualquier cadena de redirección en segundos

Usa el Comprobador de Redirecciones gratuito de DNS Robot para inspeccionar cada salto en una cadena de redirecciones — códigos de estado, cabeceras Location y destino final desde un servidor neutral (sin caché del navegador).

Probar Comprobador de Redirecciones

Advertisement

Preguntas Frecuentes

El código de estado 302 (HTTP 302 Found) significa que el recurso solicitado está temporalmente en una URL diferente indicada por la cabecera Location de la respuesta. El cliente debe seguir la redirección para esta solicitud pero seguir usando la URL original para futuras solicitudes. Es el equivalente temporal de 301 Moved Permanently.

Herramientas relacionadas

Redirect CheckerHTTP Headers CheckSSL Certificate CheckDNS Lookup

Artículos relacionados

ERR_TOO_MANY_REDIRECTS: Cómo solucionarlo (todos los navegadores)Error HTTP 503 Service Unavailable: Causas y Cómo SolucionarloError HTTP 500 Internal Server Error: Causas y Cómo SolucionarloError 403 Forbidden: Qué significa y cómo solucionarlo

Tabla de contenidos

  • ¿Qué Es el Código de Estado HTTP 302?
  • Anatomía de una Respuesta 302
  • 302 vs 301 vs 307 vs 308: ¿Qué Redirección Usar?
  • ¿Cuándo Usar una Redirección 302?
  • Cómo Enviar un Código de Estado 302
  • Cómo Probar un Código de Estado 302
  • Redirecciones 302 y SEO
  • Por Qué un 302 Cambia las Solicitudes POST a GET
  • Errores 302 Comunes y Cómo Solucionarlos
  • Bucles de Redirección 302: Cómo Diagnosticar
  • Mejores Prácticas para el Código de Estado 302
  • Comportamiento del Navegador y la Caché
  • Preguntas frecuentes