0

Inconvenientes de las redirecciones web

Redireccion 301Las redirecciones web correctas devuelven un código HTTP 301 (movido permanentemente) ó 302 (movido temporalmente). Al menos este es el objetivo que se persigue al usar las redirecciones: indicar al navegador que el contenido de la página que busca se ha movido a otra ubicación.

Este es un ejemplo de un encabezado (header) HTTP de una respuesta 301:

HTTP/1.1 301 Moved Permanently
Location: http://ejemplo.com/nuevauri
Content-Type: text/html

Al recibir este header, el navegador lleva automáticamente al usuario a la URL especificada en el campo Location. Toda la información necesaria se encuentra en los headers, el cuerpo (body) de la respuesta suele aparecer vacío.

A pesar de sus nombres, en la práctica las respuestas 301 y/o 302 no se cachean a no ser que se indique lo contrario con headers adicionales (como Expires o Cache-Control).

Aunque existen otras formas de redirigir al usuario a una URL distinta como Meta Tags (Refresh) o JavaScript, la mejor forma de hacerlo es mediante los códigos de estado de HTTP 301 ó 302, pues de esta forma nos aseguramos del buen funcionamiento del botón “atrás” del navegador, por ejemplo.

El principal incoveniente que tienen las redirecciones es que ralentizan la experiencia del usuario. El hecho de insertar una redirección entre el usuario y el contenido HTML retrasa todo el proceso de carga de la página, pues no se puede cargar ningún componente hasta que se ha recibido el documento HTML por completo.

Una de las redirecciones que más recursos suele consumir es a la vez una de las más comunes y, como suele suceder en estos casos, los desarrolladores no se suelen dar cuenta de ello por lo evidente que es: sucede cuando falta una barra (/) al final de la URL que debería llevarla. Por ejemplo, al entrar en  http://http://www.emetreinta.es/category/tecnologia forzamos una redirección 301 a http://www.emetreinta.es/category/tecnologia/ (ojo a la barra del final). Esto se gestiona en IHS (y en Apache, claro) usando la directiva Alias o mod_rewrite.

Otros usos habituales de redirecciones se dan al migrar un sitio web de un dominio a otro o al conectar diversas partes de un sitio web dirigiendo al usuario en base a determinadas condiciones, como el tipo de navegador o tipo de cuenta de usuario con la que esté registrado en dicho sitio, etc… Hacer esto es sencillo, aunque requiere un poco de código adicional en nuestro httpd.conf.

Hay que tener claro que aunque el uso de redirecciones en estas situaciones reduce la complejidad para el desarrollador degrada la experiencia del usuario.

Para estos dos casos existen alternativas al uso de redirecciones como Alias o mod_rewrite si los distintos paths están alojados en el mismo servidor. Si el cambio de nombre de dominio es el causante de luso de las redirecciones existe la opción de crear un CNAME (un registro DNS que crea un alias que apunta de un nombre de dominio a otro) y usuarlo junto a estos Alias y mod_rewrite.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *