Existen, por tanto, muchos otros servicios y protocolos en Internet, aparte de la Web: el
envío de correo electrónico (SMTP), la transmisión de archivos (FTP y P2P), las conversaciones en
línea (IRC), la mensajería instantánea y presencia, la transmisión de contenido y comunicación
multimedia -telefonía (VoIP), televisión (IPTV)-, los boletines electrónicos (NNTP), el acceso
remoto a otras maquinas (SSH y Telnet) o los juegos en línea.
En marzo de 1989, Tim Berners Lee, redacta la propuesta que referenciaba a ENQUIRE y
describía un sistema de gestión de información más elaborado. No hubo un bautizo oficial o un
acuñamiento del término web en esas referencias iniciales utilizándose para tal efecto el término
mesh. Sin embargo, el World Wide Web ya había nacido. Con la ayuda de Robert Cailliau, se
publicó una propuesta más formal para la World Wide Web el 12 de noviembre de 1990.
Berners-Lee usó un NeXTcube como el primer servidor web del mundo y también escribió
el primer navegador web, WorldWideWeb en 1990. En las Navidades del mismo año, Berners-Lee
había creado todas las herramientas necesarias para que una web funcionase: el primer
navegador web (el cual también era un editor web), el primer servidor web y las primeras páginas
web que al mismo tiempo describían el proyecto.
El 6 de agosto de 1991, envió un pequeño resumen del proyecto World Wide Web al
newsgroup alt.hypertext. Esta fecha también señala el debut de la web como un servicio
disponible públicamente en Internet.
El concepto, subyacente y crucial, del hipertexto tiene sus orígenes en viejos proyectos de
la década de los 60, como el Proyecto Xanadu de Ted Nelson y el sistema on-line NLS de Douglas
Engelbart. Los dos, Nelson y Engelbart, estaban a su vez inspirados por el ya citado sistema basado
en microfilm "Memex", de Vannevar Bush.
El gran avance de Berners-Lee fue unir hipertexto e Internet. En su libro Weaving the Web
(en castellano, Tejiendo la Red), explica que él había sugerido repetidamente que la unión entre
las dos tecnologías era posible para miembros de las dos comunidades tecnológicas, pero como
nadie aceptó su invitación, decidió, finalmente, hacer frente al proyecto él mismo. En el proceso,
desarrolló un sistema de identificadores únicos globales para los recursos web y también: el
Uniform Resource Identifier.
World Wide Web tenía algunas diferencias de los otros sistemas de hipertexto que
estaban disponibles en aquel momento:
WWW sólo requería enlaces unidireccionales en vez de los bidireccionales. Esto hacía
posible que una persona enlazara a otro recurso sin necesidad de ninguna acción del propietario
de ese recurso. Con ello se reducía significativamente la dificultad de implementar servidores web
y navegadores (en comparación con los sistemas anteriores), pero en cambio presentaba el
problema crónico de los enlaces rotos.
A diferencia de sus predecesores, como HyperCard, World Wide Web era no-propietario,
haciendo posible desarrollar servidores y clientes independientemente y añadir extensiones sin
restricciones de licencia.
El 30 de abril de 1993, el CERN anunció que la web sería gratuita para todos, sin ningún
tipo de honorarios.
ViolaWWW fue un navegador bastante popular en los comienzos de la web que estaba
basado en el concepto de la herramienta hipertextual de software de Mac denominada
HyperCard. Sin embargo, los investigadores generalmente están de acuerdo en que el punto de
inflexión de la World Wide Web comenzó con la introducción del navegador web Mosaic en 1993,
un navegador gráfico desarrollado por un equipo del NCSA en la Universidad de Illinois en Urbana-
Champaign (NCSA-UIUC), dirigido por Marc Andreessen. Funding para Mosaic vino del High-
Performance Computing and Communications Initiative, un programa de fondos iniciado por el
entonces gobernador Al Gore High Performance Computing and Communication Act of 1991,
también conocida como la Gore Bill. Antes del lanzamiento de Mosaic, las páginas web no
integraban un amplio entorno gráfico y su popularidad fue menor que otros protocolos anteriores
ya en uso sobre Internet, como el protocolo Gopher y WAIS. La interfaz gráfica de usuario de
Mosaic permitió a la WWW convertirse en el protocolo de Internet más popular de una manera
fulgurante.
Estándares web
Destacamos los siguientes estándares:
Berners Lee dirige desde 2007 el World Wide Web Consortium (W3C), el cual desarrolla y
mantiene esos y otros estándares que permiten a los ordenadores de la Web almacenar y
comunicar efectivamente diferentes formas de información.
Fundamentos de la web
El éxito de la web se basa en dos factores fundamentales: el protocolo HTTP y el lenguaje
HTML. El primero permite una implementación sencilla de un sistema de comunicaciones que
permite enviar cualquier archivo de forma fácil, simplificando el funcionamiento del servidor y
posibilitando que servidores poco potentes atiendan cientos o miles de peticiones y reduzcan de
este modo los costes de despliegue. El segundo, el lenguaje HTML, proporciona un mecanismo
sencillo y muy eficiente de creación de páginas enlazadas.
El protocolo también define la forma de codificar el paso de parámetros entre dos páginas,
la tunelización de las conexiones (para sistemas de firewall), define la posible existencia de
servidores intermedios de caché, etc. Las directivas que se utilizan para la petición de información
según se definen en HTTP 1.1 (la versión considerada estable y ampliamente utilizada) son:
Se debe destacar que todos los recursos servidos mediante HTTP deberán ser
referenciados utilizando una URL ("Universal Resource Locators").
Las peticiones en HTTP se pueden realizar utilizando 2 métodos. El método GET, cuando
envía parámetros con la petición, lo hace codificándolos en la URL. El método POST lo hace como
parte del cuerpo de la petición.
Una petición HTTP puede contener parámetros, por ejemplo, como respuesta a un
formulario de registro o a una selección de entre los productos en una tienda virtual. Tales
parámetros pueden pasarse de 2 formas:
Para codificar los parámetros como parte incluida en la URL, éstos deben añadirse a la URL
detrás del nombre del recurso, separándolos de éste mediante el carácter "?". Los parámetros se
separan entre sí mediante el carácter "&". Los espacios se sustituyen por el carácter "+". Los
caracteres especiales (los mencionados antes de "&", "+" y "?", y los caracteres que no son
imprimibles, etc.) se representan mediante "%xx", donde "xx" representa el código en codificación
ASCII en hexadecimal del carácter en cuestión.
El otro factor principal del éxito del World Wide Web ha sido el lenguaje HTML ("Hypertext
Mark-up Language", o "Lenguaje de Marcado de Hipertexto"), que es un lenguaje de marcas (se
insertan marcas o etiquetas en el texto) que permite representar de forma rica el contenido y
referenciar otros recursos (por ejemplo, imágenes), o enlaces a otros documentos (que es,
precisamente, la característica más destacada de la web), mostrar formularios para su posterior
procesamiento, etc.
El funcionamiento de los CGIs tenía un punto débil: cada vez que se recibía una petición, el
servidor debía lanzar un proceso para ejecutar el programa CGI. Como la mayoría de CGIs estaban
escritos en lenguajes interpretados, como Perl o Python, o en lenguajes que requerían "run-time
environment", como Java o Visual Basic, el servidor se veía sometido a una gran carga. La
concurrencia de múltiples accesos al CGI podía ocasionar problemas graves.
Por eso se empezaron a desarrollar alternativas a los CGIs que solucionaran el problema
del rendimiento. Las soluciones llegan básicamente por 2 vías: 1) se diseñan sistemas de ejecución
de módulos mejor integrados con el servidor, que evitan la instanciación y ejecución de varios
programas, y 2) se dota a los servidores un intérprete de algún lenguaje de programación que
permita incluir el código en las páginas de forma que lo ejecute el servidor, reduciendo el intervalo
de respuesta.
Una de las más potentes es la seguida por Sun Microsystems con su Java, integrado por 2
componentes; un lenguaje que permite la incrustación de código en las paginas HTML que el
servidor convierte en programas ejecutables, JSP ("Java Server Pages" o "Paginas de Servidor de
Java"), y un método de programación muy ligado al servidor, con un rendimiento superior a los
CGIs, denominado "Java Servlet".
Otra tecnología de éxito y una de las más utilizadas es el lenguaje PHP. Se trata de un
lenguaje interpretado que permite la incrustación de HTML en los programas, con una sintaxis
derivada de C y Perl. El hecho de ser sencillo y potente ha contribuido a hacer de PHP una
herramienta muy apropiada para determinados desarrollos.
Tareas
Crear una aplicación ASP. Net en donde se ocupen 2 páginas y una página maestra (la
misma para las dos páginas). La página maestra deberá contener una sección para el título de la
aplicación (tema), una sección para el menú y una sección para visualizar los contenidos (páginas).
El tema de la aplicación será sobre el servicio social de los alumnos del 8° semestre de L.I. En la
primera página se deberá dar de alta la siguiente información: clave del alumno, nombre completo
del alumno, lugar en donde realiza/realizó el servicio social, y labores realizadas. Para esto último,
se deberá crear una base de datos llamada Servicio_TuNombre. Tú definirás el nombre de la tabla,
nombres y tipos de datos de los campos. La segunda página deberá implementar un objeto
GridView para visualizar el contenido de la única tabla de la base de datos. Todas las páginas
deberán estar estandarizadas.
Práctica
Crear una aplicación web ASP.Net en donde se ocupen 3 páginas y una página maestra (la
misma para las tres páginas). La página maestra deberá contener una sección para el título de la
aplicación (tema), una sección para el menú y una sección para visualizar los contenidos (páginas).
El tema de la aplicación será describir la comunidad en donde vives. La primera página deberá
contener la descripción de la comunidad, la cual no deberá ser menor a una cuartilla de un
documento de Word (fuente calibri de tamaño 12). La segunda página deberá contener una
galería de imágenes (no menor a 10 imágenes). La tercera página deberá contener una tabla de
enlaces externos (mínimo 10) relacionados con tu comunidad. Todas las páginas deberán estar
estandarizadas.
Unidad II. Servidores Web
El sitio deberá tener una sección en donde se ofrezcan empleos y el perfil de la persona
que podría ocupar el empleo ofrecido. Ahí mismo se deberá presentar la lista de candidatos para
cada uno de esos empleos.
También se deberá tener una sección para agregar, actualizar o modificar los empleos
ofrecidos en el sitio. Se deberá indicar el estatus de cada empleo: disponible, no disponible,
ocupado. Esto sólo podrá hacerlo el administrador del sitio. El alumno sólo podrá agregarse a sí
mismo como candidato a un empleo.
Los datos a tomar en cuenta para el alumno son: Clave, Nombre, Apellidos, Carrera,
Semestre, Promedio General, Currículo Resumido.