HTTPQUERY
Español

302 Found

Uso

Cuando se recibe el código de estado 302 Found, el cliente entiende que el recurso solicitado se ha trasladado temporalmente. Una segunda solicitud recupera el recurso en la nueva ubicación. Esto resulta más sencillo que un 301, porque no se espera que el cliente actualice sus enlaces internos.

Nota

Por compatibilidad con versiones anteriores, se permite que el cliente cambie el método de la solicitud de POST a GET al seguir la redirección. Para eliminar la ambigüedad, el servidor devuelve en su lugar un código de estado alternativo. El código 303 indica que la redirección debe usar el método GET, mientras que el código 307 exige conservar el método original.

Entre los desencadenantes habituales de las respuestas 302 están el paso de HTTP a HTTPS (que suele resolverse mejor con un 301), la normalización de URL (barra final), las pruebas A/B, el enrutamiento de contenido según la geolocalización y las redirecciones temporales por mantenimiento.

Nota

Un 302 es una redirección correcta, no un error. El servidor encontró el recurso y dirige al cliente a su ubicación actual. Para resolver redirecciones 302 no deseadas: compruebe que la redirección es intencionada, conviértala en un 301 si el traslado es permanente y revise la configuración del CMS o el .htaccess en busca de reglas añadidas por error.

Capacidad de caché

Una respuesta 302 no es almacenable en caché de forma predeterminada. A diferencia de 301 y 308, un 302 necesita cabeceras Cache-Control o Expires explícitas para que las cachés la almacenen.

Impacto en SEO

Google interpreta un 302 como una señal débil de que el destino de la redirección es la URL preferida, a diferencia del 301, que es una señal fuerte. Google procesa la URL de origen o la de destino. Un 302 mantenido a largo plazo puede acabar tratándose como una redirección permanente, de modo que un cambio permanente se resuelve mejor con un 301.

Ejemplo

El cliente solicita un recurso que se ha trasladado temporalmente. El servidor indica la nueva ubicación y facilita un mensaje pertinente para mostrarlo en el lado del cliente.

Solicitud

GET /news.html HTTP/1.1
Host: example.com

Respuesta

HTTP/1.1 302 Found
Location: http://example.com/testing/news.html
Content-Type: text/html
Content-Length: 167

<h1>The Newsfeed has moved</h1>
<body>
The site is under development and the newsfeed has
temporarily moved to
<a href=/testing/news.html>here</a>.
</body>

Referencias de código

.NET

HttpStatusCode.Found

Rust

http::StatusCode::FOUND

Rails

:found

Go

http.StatusFound

Symfony

Response::HTTP_FOUND

Python3.5+

http.HTTPStatus.FOUND

Java

java.net.HttpURLConnection.HTTP_MOVED_TEMP

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_MOVED_TEMPORARILY

Angular

@angular/common/http/HttpStatusCode.Found