¿Qué es una redirección HTTP?

Redirección Html

Artículo AccionesRedirecciones en HTTPLa redirección de URL, también conocida como reenvío de URL, es una técnica para dar más de una dirección URL a una página, un formulario o un sitio web/aplicación completo. HTTP tiene un tipo de respuesta especial, llamado redireccionamiento HTTP, para esta operación.

PrincipioEn HTTP, la redirección se activa cuando un servidor envía una respuesta de redirección especial a una solicitud. Las respuestas de redirección tienen códigos de estado que empiezan por 3, y una cabecera Location que contiene la URL a la que se redirige.

Cuando los navegadores reciben una redirección, cargan inmediatamente la nueva URL proporcionada en la cabecera Location. Además del pequeño impacto en el rendimiento de un viaje de ida y vuelta adicional, los usuarios rara vez notan la redirección.

Redirecciones permanentesEstas redirecciones están pensadas para durar siempre. Implican que la URL original no debe seguir utilizándose y se sustituye por la nueva. Los robots de los motores de búsqueda, los lectores de RSS y otros rastreadores actualizarán la URL original del recurso.

[1] La especificación no pretendía permitir los cambios de método, pero existen agentes de usuario que sí cambian su método. El 308 se creó para eliminar la ambigüedad del comportamiento cuando se utilizan métodos no GET.Redirecciones temporalesA veces no se puede acceder al recurso solicitado desde su ubicación canónica, pero sí desde otro lugar. En este caso, se puede utilizar una redirección temporal.

Cabecera Http para la redirección

Hay varias razones por las que podría querer redirigir a los clientes a una nueva ubicación. Por ejemplo, si su empresa está migrando a un nuevo sitio web, podría redirigir todas las peticiones del antiguo sitio web al nuevo. Asimismo, si ha desplegado una nueva aplicación en un servidor web, podría redirigir todas las solicitudes del espacio de nombres URL de la antigua aplicación (por ejemplo, http://www.contoso.com/app_v1.0/) a la nueva ubicación de la aplicación (por ejemplo, http://www.contoso.com/app_v2.0/).

En la configuración más sencilla, sólo es necesario establecer los atributos enabled y destination del elemento <httpRedirect> para redirigir a los clientes a una nueva ubicación. Sin embargo, elementos adicionales como los atributos exactDestination y httpResponseStatus permiten configurar la experiencia del usuario final de la redirección especificando respectivamente si IIS 7 devolverá la URL de destino exactamente como se ha introducido y qué código de respuesta HTTP devolverá al cliente web.

No existe una interfaz de usuario para añadir redirecciones HTTP comodín para IIS 7. Para ver ejemplos de cómo añadir elementos <add> al elemento <httpRedirect> mediante programación, consulte la sección Ejemplos de código de este documento.

Redirección desde el servidor

HTTPS es un protocolo principal de conexión a Internet que protege los datos enviados entre el navegador y el sitio web. Es una versión segura del HTTP estándar. Puedes aprender más sobre el funcionamiento y uso de HTTPS viendo el siguiente vídeo:

Recuerde que es importante asegurarse de que sus datos y los del usuario están protegidos y seguros. Si todavía está usando HTTP, es mejor que se transfiera a HTTPS, especialmente para evitar hacer una copia duplicada de la misma página.

Las URL que utilizan el protocolo HTTP y que redirigen a HTTPS suelen dar lugar a errores de redirección. Para empezar, el HTTP o Protocolo de Transferencia de Hipertexto se utiliza como base del intercambio de datos en la world wide web. Es un protocolo cliente-servidor, por lo que el destinatario o el navegador realiza las peticiones. Por otro lado, HTTPS es la versión segura de HTTP. Es una extensión de HTTP y está dotada de cifrado SSL.

Esto significa que la migración de HTTP a HTTPS da lugar a errores en la seguridad de los datos, y la redirección falla. Generalmente, esto puede ocurrir por muchas razones, pero todas darán como resultado que los usuarios no puedan acceder al sitio.

Redirección Http con cuerpo

La diferencia entre el código 301 y el 308 está en los detalles. Si un cliente ve una redirección 308, DEBE repetir exactamente la misma petición en la nueva ubicación, mientras que el cliente puede cambiar una petición POST en una petición GET en el caso de una redirección 301.

Esto significa que, si se hace un POST con cuerpo y el servidor devuelve un código de estado 308, el cliente debe hacer una petición POST con el mismo cuerpo a la nueva ubicación. En el caso de un código de estado 301, el cliente puede hacer esto pero no está obligado a hacerlo (en la práctica, casi todos los clientes proceden con una petición GET).

El problema con el código de estado HTTP 308 es que es relativamente nuevo (introducido en el RFC 7538 en abril de 2015) y, por lo tanto, no es compatible con todos los navegadores y rastreadores. Por ejemplo, Internet Explorer 11 en Windows 7 y 8 no entiende los códigos de estado 308 y simplemente muestra una página vacía, en lugar de seguir la redirección.

Debido al soporte todavía limitado del 308, la recomendación es ir siempre con redirecciones 301, a menos que requiera que las solicitudes POST sean redirigidas correctamente y esté seguro de que todos los clientes entienden el código de respuesta 308.

    Comments are closed

    Esta web utiliza cookies propias para su correcto funcionamiento. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
    Privacidad