En este artículo trataremos de analizar las principales características de la aplicación web, empezando por su origen, para seguir describiendo los diferentes componentes de la aplicación y terminar explicando los recursos (protocolos y lenguajes) que deben utilizar quienes quieran desarrollar sus funciones.
Un poco de historia
En 1989 se presentó en el CERN (Centre Europée pour la Recherche Nucleare) la primera propuesta de una aplicación para obtener y compartir información. Se puede decir, por tanto, que la web nació para cumplir con unas obligaciones muy concretas: Facilitar el acceso a la información entre investigadores en los centros europeos de investigación. Posteriormente, como ocurre a menudo, se ha comprobado que la solución que se empleó para este uso concreto es también la solución adecuada a muchos otros problemas.
A los 18 meses de la presentación de esta intención ya se había realizado el primer prototipo y en febrero de 1993 se presentó el ya obsoleto navegador Mosaic, en este caso sí, realizado en EEUU, concretamente en la NCSA (National Center for Supercomputing Applications). Este primer producto estableció las bases sólidas del éxito posterior debido a dos características principales: por un lado, siguiendo la costumbre de Internet, la interfaz se distribuyó de forma gratuita y por otro, era de gran facilidad para el usuario.
Cualquiera, fuera o no experto informático, podía usarlo eliminando con ello esa nube de misterio sobre la red. Ante el éxito de Mosaic, su creador, Marc Andresseen, abandonó inmediatamente la NCSA y creó su propia empresa, Netscape, que tiene como objetivo desarrollar software para la web. En 1995 Netscape aparece en bolsa y rompe los récords de cotización, aunque reconoce que no esperaba rendimiento a corto plazo. Muchos creían que Netscape iba a ser una nueva Microsoft, la otra gran compañía que crearía un imperio. Sin embargo, hoy en día Microsoft y Netscape están luchando por imponer su producto. De momento el usuario es el vencedor, luego los futuros.
En 1994 los MIT (Massachussets Institute of Technologies) y el CERN europeo crearon la organización denominada World Wide Web Consortium para crear estándares relacionados con Web. Su página web está disponible en http://www.w3.org.
Clientes y servidores
Como cualquier otra aplicación distribuida, la web se divide en dos partes: el servidor, es decir, el que se ejecuta por sí mismo en una máquina, y el cliente, el que se ejecuta en otra máquina y a la hora de recibir órdenes ajenas. Este último puede recibir diferentes nombres en función de las aplicaciones. Se utiliza el browser en inglés, tenemos el navegador en castellano y el navegador en euskera.
Quien quiera ampliar la información en la red, por lo tanto en el mundo, necesita un servidor, es decir, un ordenador, programas para el servidor web (también hay programas de pago y gratuitos) y una conexión a internet con algún proveedor. Todo ello, sin embargo, supone poner mucho más dinero de lo que normalmente se puede invertir. Por lo tanto, es mucho más normal alquilar una parte de su servidor a quien dispone o gestiona dicha infraestructura. De esta forma, cada uno elabora su propia información en su hogar, es decir, en su propio ordenador, y la envía a su proveedor para su publicación. Se trata de poner esta formación en formato HTML que luego analizaremos de forma somera.
Por otro lado, quien quiera informarse necesita un navegador en su ordenador y, por supuesto, una conexión a internet. Hasta ahora no lo hemos dicho, pero hay que tener en cuenta que en el ordenador del servidor y del navegador, en ambos casos, son necesarios protocolos TCP/IP.
Los requisitos del navegador son, por un lado, contactar con los servidores que se encuentran a lo largo de la red para captar la información contenida en la misma y, por otro, presentar al usuario los documentos recibidos en la red, ayudarle en la búsqueda y corregirlos. A cada documento web se le denomina “página”. No todas las páginas se pueden ver directamente, ya que muchas veces tienen algo más que texto: imágenes, sonido, vídeo o las tres a la vez. Hay navegadores que son capaces de reflejar cualquier tipo de información, pero normalmente se le pide a otra aplicación, a un revisor externo ( external viewer ) o a una aplicación auxiliar que realice ese trabajo.
Si no dispones de este monitor en tu ordenador no podrás acceder a esta información. Este es otro de los aspectos multimedia, que hace aún más fascinante la web. Y es que la capacidad del navegador para trabajar con otras aplicaciones nos ha traído muchas posibilidades: cualquier cosa se puede utilizar con las webs. Por ello, ya se ha dicho que el usuario sólo ve web aunque esté utilizando muchas aplicaciones. El último paso gigante ha sido la consideración del lenguaje interpretativo como una aplicación auxiliar, sobre todo el lenguaje Java. Luego hablaremos de ello.
Direcciones: URL
Para recibir una página hay que definir tres conceptos: el servidor que tiene la página, el fichero en el que se encuentra y cómo solicitarla al servidor.
Y todo ello codificado en las direcciones URL ( Universal Resource Locator ), concretamente en las tres partes que componen la misma URL. Véase en la figura 1 un ejemplo.Si no se indica la tercera parte, siempre se presenta una hoja especial como presentación. La segunda parte tiene su propia sintaxis, correspondiente al nombre de DNS o Internet. En cuanto a la forma de solicitarlo, el navegador HTTP ( HiperTex Transfer Protocol ) es el protocolo de contacto con el servidor web, pero —y aquí reside otra de las claves de la web— un navegador web puede también ponerse en contacto con los servidores de otras aplicaciones. Esto hace posible el uso de otros recursos en internet (FTP, gopher, news...) antes de la aparición de la web. ) poder utilizar junto con las webs y, con ello, que toda la información que existía anteriormente en la red esté a disposición de más gente. Volvemos a ver que el usuario utiliza diferentes aplicaciones, aunque, como hemos dicho anteriormente, sólo ve web. En la imagen podemos ver ejemplos de diferentes URL.
La verdad es que normalmente el navegador no utiliza todos los protocolos que aparecen en esa imagen, porque sería demasiado complicado. La dificultad debe colocarse siempre en el otro lado del servidor. De esta forma, entre el navegador y el servidor se pone otro medio que sirve para protocolo múltiple y que hace de sirviente de zarza. Esto se llama proxy. Normalmente se coloca en el propio ordenador del servidor o en otra máquina directamente conectada con él. Cada proxy suele ser intercalado con muchos servidores como web, ftp, gopher y news. En algunos casos todas estas aplicaciones se encuentran en el propio ordenador del servidor, pero en otros no.
Normas para hablar: HTTP
La mayoría de los documentos necesarios se encuentran en formato HTML, por lo que se utiliza el protocolo propio de la web para acceder, llamado HTTP ( HyperText Transfer Protocol ). El HTTP está en constante evolución. En la actualidad se pueden utilizar diferentes versiones y están siendo muy creadas, principalmente bajo el control del WWW Consortium. Las características que se citan a continuación son las más básicas y aunque algunas de las matizaciones pueden variar en futuras versiones, los conceptos permanecerán intactos.
Es un protocolo muy sencillo, como la mayoría de los protocolos de aplicación. Se divide en dos partes: la parte de las solicitudes que el navegador puede realizar al servidor y la parte de las respuestas en sentido contrario. Las nuevas versiones contienen dos tipos de solicitudes: simples y completas, ambas escritas en el código ASCII. Simple es la parte de la URL que indica la palabra GET y el fichero. Por ejemplo:
GET/público/colaboradores/itoiz.html
La respuesta es la hoja solicitada en bruto, el navegador debe saber cómo preparar la información recibida para presentarla al usuario. Podemos probar este tipo de solicitudes directamente si en nuestra máquina hacemos de navegador con la aplicación telnet. Conéctate al puerto 80 ( nombre del servidor telnet 80 ) e introduce la línea antes mencionada, pero cambia la ubicación del fichero porque lo que te hemos dado es inventado por nosotros.
Sin embargo, las peticiones completas pueden ser de varias líneas, pero siempre la última línea es pura. La primera línea indica la orden (una de las opciones es GET), la página y la versión del protocolo. Las otras líneas siguen las normas RFC 822 del correo electrónico y pueden modificarse según la orden. Se diseñó para aplicaciones orientadas a objetos HTTP, por lo que las órdenes se denominan “método”.
La respuesta a peticiones completas se compone de una línea de estados y tal vez la información adjunta. La línea de estado puede ser el código OK (número 200) o un código de error. La información suele ser la propia página web.
Normas de presentación: HTML
Las páginas web están en formato HTML ( HyperText Markup Language ). Decir lenguaje al HTML puede resultar confuso, ya que no ejecuta nada en sí mismo y se entrega el lenguaje al código que ejecuta los algoritmos. Es más preciso, por tanto, decir formato, ya que sólo indica cómo debe aparecer la información, como TeX y el resto de formatos. Por ejemplo, poner B nos indica que el texto debe aparecer en negro y poniendo B/ se nos dice que hay que anular la orden. Por tanto, el navegador deberá conocer el significado de estas marcas que aparecen en el texto.
De este modo, la información se almacena (sin preocuparse de dónde aparecerá): el navegador de cada máquina o sistema sabrá cómo presentar el texto en negro, sabrá qué conversión de formato debe realizar para cumplir las órdenes HTML, etc. Esto es muy importante ya que la página está en la pantalla 1024 x 768 y en color de 24 bits, por ejemplo, en la pantalla 640x480 y en colores de 8 bits.
Al igual que HTTP, HTML está en continuo cambio. Cuando Mosaic era el único navegador, HTML 1.0 era el estándar “de facto”, pero cuando aparecieron nuevos navegadores, debido a la necesidad de un estándar oficial, surgió HTML 2.0. A partir de ahí han aparecido otras normas, como los oficiales reconocidos por WWW Consortium y los creados por cada productor. Normalmente se basan en los oficiales y sólo se les añade alguna novedad. Si esta innovación tiene éxito en el mercado, se incluirá en el siguiente estándar oficial. Esto favorece al productor, ya que su navegador utiliza esta característica antes que el resto. Los concursantes deberán invertir tiempo y dinero para conseguirlo.
En este tiempo sería demasiado largo describir detalladamente HTML, pero lector, cuál es su aspecto “crudo” y cómo se presentaría una página.
... y más: acciones. CGI y Java
HTML 1.0 era unidireccional: el usuario podía recibir información del servidor pero no podía enviarle nada. Con la incorporación de las organizaciones comerciales a la red, se ha incrementado la necesidad de una doble dirección. Por ejemplo, hay empresas que, además de recibir pedidos, quieren recibir el número de la tarjeta de crédito del cliente. Por ello, comenzaron a ofrecer la posibilidad de hacerlo en HTML 2.0. Más aún: El estándar CGI ( Common Gateway Interface ) permite ejecutar programas en el servidor si el usuario lo solicita a través de su navegador. Por ejemplo, supongamos que el servidor tiene una base de datos muy interesante y que el usuario quiere consultarla.
Para ello, acudirá a la página del servidor donde encontrará el formulario de preguntas, una vez cumplimentado, su navegador enviará al servidor los datos de las preguntas, como la clave de acceso a esta base de datos y las palabras clave de búsqueda. Si el servidor acepta la operación, el navegador le indicará que ejecute un programa de referencia en su página. Estos programas se llaman widget o script y como cualquier otro documento se indican con una URL dentro del documento HTML.
Sin embargo, este trabajo entre el navegador y el servidor no es suficiente en algunas aplicaciones, sobre todo en las animaciones. Para ello se creó otra herramienta: Lenguaje Java. La idea es: El programa que ejecuta las acciones asociadas a una página HTML las carga en el navegador junto con la página y las ejecuta él mismo. Parece muy fácil, pero no es tan simple. El lenguaje que se ejecuta en cualquier ordenador no existe y además sería muy peligroso porque es la forma más sencilla de introducir virus. Sin embargo, superando estas barreras se ha conseguido el objetivo.
El lenguaje es Java, tipo C++ y no da problemas de seguridad. Los programas escritos en Java son pequeños y se denominan applets, en inglés, que significa aproximadamente “app pequeña”. Las applets se compilan y almacenan en un código tipo byte, lo que garantiza que todos los applets tienen el mismo aspecto, independientemente del autor o del procedimiento en el que se hayan creado. Este código tipo byte es el que se accede desde HTML y se ejecuta en el ordenador del navegador. Su ejecución requiere intérprete. Por lo tanto, los componentes del sistema Java son tres (para más información, ver el café Java puro de Luis Elizondo o el futuro de la informática? Artículo 107, mayo 1996):
Hemos descrito aquí la web y sus componentes, no muy en profundidad, es cierto, pero si así lo hiciéramos, tendríamos que escribir un volumen y además para publicarlo, muchos detalles estarían obsoletos, así es la informática. Sin embargo, lo que aquí hemos explicado seguirá siendo cierto durante algunos años. Seguramente no mucho más.