viernes, 2 de diciembre de 2011

15.- Navegación dinámica vs navegación estática

Hasta el momento se han abordado aspectos fundamentales de la construcción de un sitio web, desde su concepción, organización, estructura formal y técnica, su programación óptima, aspectos de estilo y formato, pero no se han atendido otros que resultan cruciales, como es la forma de navegación y enlazamiento del sitio web.

Tipos de enlaces
Antes de explicar los métodos de navegación estática y dinámica, se deben observar la tipología de enlaces que con frecuencia se utilizan en toda la web, véase tabla1. Los más conocidos y utilizados son los enlaces de tipo absoluto que ó bien pueden apuntar y enlazar a una página web dinámica (programada en PHP, ASP, Ruby, Python o cualquier otro lenguaje de programación del lado del servidor) ó a una página web estática (normalmente programada en HTML). Se denomina enlace absoluto cuando se identifica en la construcción de la URL el protrocolo de internet ( http://www. ) añadiendo el nombre del dominio, subdominio, extensión ( dominio.org ) y agregando finalmente la ruta de carpetas o repositorios hasta localizar el archivo o documento a enlazar ( document001.php ).

Otro tipo de enlaces básico son los denominados enlaces relativos. Éstos son de uso común en la práctica totalidad de los sitios web. Se utilizan para enlazar contenidos sin necesidad de reseñar la ruta completa o absoluta hasta el recurso ó documento objetivo. Esto implica una acortación importante en la longitud de la URL y una simplificación en su construcción. Un enlace relativo puede ser utilizado para enlazar un documento que se encuentra en el mismo origen o nivel del que parte el link, por ejemplo ( Un enlace como este  <a href='document002.html'>documento2</a> dentro del código de una página denominada document001.html implica que tanto el documento1 como el 2 están dentro del mismo nivel de carpetas, con independencia de su posición en la estructura de repositorios del sitio web). Cuando el recurso que se pretende enlazar se encuentra en un nivel jerárquico de carpetas inferior al que se encuentra el origen del que parte el link se reseña la carpeta/s a las que son necesarias acceder hasta el recurso objetivo, creando una ruta más elaborada, por ejemplo ( documents/document001.html ). Pero en el caso en el que el recurso a enlazar se encuentre en un nivel de carpetas superior, ó en otro nivel distinto, se hace necesario especificar mediante la sintaxis ( ../ ) que la ruta de acceso ha de subir un nivel de carpetas ó tantos como fueren necesarios ( ../../../ 3 en este caso ) para acceder al documento ó carpetas en las que está alojado el documento, por ejemplo ( ../css/estilo.css ).

Enlaces Descripción
http://www.dominio.org/document001.php [ ModeloA; absoluto; dinámico; no-nivel ] Enlace absoluto a una página web dinámica.
http://www.dominio.org/document001.html [ ModeloA; absoluto; estático; no nivel ] Enlace absoluto a una página web estática.
documents/document001.html [ ModeloB; relativo; estático; N-superior ] Enlace relativo desde el nivel raíz del sitio web a un documento dentro de una carpeta denominada documents.
../css/estilo.css [ ModeloB; relativo; estático; N-inferior ] Enlace relativo desde un primer nivel de carpetas hasta la carpeta css que contiene el archivo estilo.css
http://www.dominio.org/document001.php?id=243&section=biblioteconomia [ ModeloC; absoluto; dinámico; no-nivel; variables GET ] Enlace absoluto a una página web dinámica con variables enviadas por método GET.
document001.php?id=142&section=musicologia [ ModeloC; relativo; dinámico; N-igual; variables GET] Enlace relativo a una página web dinámica con variables enviadas por método GET.
index.php?page=documentacion-y-bibliotecas [ ModeloD; relativo; dinámico; N-igual; variables GET + SEO ] Enlace a página web dinámica "index.php" con página de destino predefinida en variable  "page" con nombre optimizado para SEO (Search Engine Optimization).
index.php/documentacion-y-bibliotecas [ ModeloE; relativo; dinámico; N-igual;  mod rewrite + SEO ] Enlace relativo a página web dinámica "index.php" con ruta dirigida por medio de función Mod rewrite htaccess, optimización de enlaces para SEO (Search Engine Optimization) en la configuración del servidor que aloja el sitio web.
index.php/calendarios-de-transferencia [ ModeloF; relativo; dinámico; N-igual; parser URL + SEO ] Enlace relativo a página web dinámica "index.php" similar al modeloE pero cuya ruta no es dirigida por el servidor del alojamiento del sitio web, sino por un programa gestor de redireccionamientos integrado dentro del propio sitio web y programado en PHP o cualquier otro lenguaje del lado del servidor.
Tabla1. Tipología de enlaces de la web

Pero como se ha visto en el artículo anterior relativo a formularios, se puede empezar a pensar en que uno de los tipos de enlaces más importantes es el que incorpora variables, que por lo general suele ser dinámico, ya que la página de destino, debe ser capaz de procesarlas y extraer sus datos, por ejemplo ( document001.php?id=142&section=musicologia ) caso en el que document001.php deberá ser capaz de entender que id=142 corresponde a un identificador de un contenido sobre section=musicologia.

Otro tipo de enlace derivado del modeloC es el modeloD. Consiste en utilizar una única variable por método GET, que identifique el título completo o casi completo del artículo o documento objetivo. Si bien el enlace apunta a la página "index.php", ésta contendrá algún tipo de script o rutina programada capaz de interpretar el redireccionamiento que debe efectuar para cargar la página especificada por la variable "page". Esto significa que deberá identificar el documento por su título normalizado y además éste deberá ser único y distinto del resto de la colección de documentos ó de la base de conocimiento, también deberá determinar la extensión del documento. 

El enlace modeloE corresponde a un método de redireccionamiento a páginas web que se resuelve en el lado del servidor mediante la activación de la función mod_rewrite propia de los servidores HTTP de tipo Apache. Se lleva a cabo un proceso de reescritura de la URL de un recurso, documento ó página web de acuerdo a un patrón establecido, por ejemplo la supresión de extensiones, el acortamiento ó transformación del nombre del archivo por el del título del recurso, la adición de nuevos elementos en la ruta original (por ejemplo, fecha, nombre de un repositorio ó sección), etc.
Finalmente el modeloF, apenas se podría distinguir del modeloE, si no fuera por el soporte de interpretación, que es distinto al explicado anteriormente. Si bien sólamente aparece el título del documento o recurso objetivo, éste es interpretado por un programa denominado Gestor de enlazamiento y redirección para la navegación. Se trata de un ingenio que es capaz de analizar la estructura de un enlace y descomponerla en todos elementos. Una vez éstos son identificados se reconstruye la URL correspondiente al recurso objetivo.

Navegación estática
  • Enlazamiento interno absoluto o relativo a páginas web estáticas.
  • El enlazamiento de los contenidos, recursos o documentos no permite la introducción de variables por método GET.
  • No se utilizan los modelos de enlace para los recursos internos del sitio web, C, D, E y F.
  • Implica introducir el nombre completo de los archivos y su extensión.
  • Son estáticos para todo el sitio web.
  • No admiten variaciones en su codificación.
  • Interpretables para cualquier navegador web del cliente y para cualquier servidor web HTTP básico.
Navegación dinámica
  • Permite todos los métodos de enlazamiento interno de tipo absoluto, relativo a páginas web estáticas y dinámicas.
  • Se posibilita el uso de variables por método GET en la URL, de tal forma que pueden darse todos los modelos y tipos de enlaces. Con URL acortada, con identificador, con denominación completa o parcial del título del documento o página objetivo, etc.
  • Implica ó una configuración del servidor web HTTP para gestionar los enlaces o un programa gestor ó parser capaz de interpretar las URL especializadas en SEO.
  • Implica métodos de redireccionamiento y construcción automática de los enlaces, por lo tanto son enteramente dinámicos para todo el sitio web.
  • Para la correcta interpretación de las variables del enlace se requiere de un servidor web HTTP + PHP (intérprete ó lenguaje del lado del servidor)

No hay comentarios:

Publicar un comentario