Introducción Ingeniería de Telecomunicación grex@gsyc.es GSyC, Universidad Rey Juan Carlos 24 de noviembre de 2008
(cc) 2008 Some rights reserved. This work licensed under Creative Commons Attribution-ShareAlike License. To view a copy of full license, see http://creativecommons.org/licenses/by-sa/3.0/ or write to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Historia del WWW En 1989, Tim Berners-Lee (TBL), un científico del CERN (European Organization for Nuclear Research) en Ginebra, propone un nuevo proyecto para facilitar el intercambio de información científica. Introdujo un concepto conocido, pero poco utilizado hasta entonces: el hiperenlace. Creó un navegador llamado WorldWideWeb. Creó el primer servidor web (el CERN HTTPd). El servicio WWW se convirtió rápidamente en popular, desplazando otros servicios existentes en Internet con anterioridad. En 1994, TBL creó el World Wide Web Consortium (W3C) para regular las tecnologías relacionadas con el web (HTTP, HTML, etc.).
La Pila de Protocolos (Repaso) El modelo Hourglass:
Arquitectura Cliente-servidor (Repaso) Servidor: Siempre encendido IP fija Granjas para escalado En nuestro caso, el servidor web será un programa en el nivel de aplicación Ojo: también se conoce como servidor a la máquina que lo ejecuta Clientes: Se comunican con el servidor Intermitentemente conectados Pueden tener IP dinámicas No se comunican entre ellos En nuestro caso, el cliente web será un programa en el nivel de aplicación
Un cliente HTTP Programa de usuario Generalmente con interfaz gráfica (pero no siempre; ejemplo: lynx y links) Realiza peticiones HTTP al servidor Por ejemplo: para pedir http://www.example.com/path/file.html GET /path/file.html HTTP/1.1 Host: www.example.com
Más sobre (peticiones) HTTP Hay varias versiones de HTTP Métodos: GET, POST, PUT, HEAD, DELETE... Pide una URL (dirección web) Pero ojo: Suele pedir un nombre, no una dirección IP Puede incluir información de configuración (p.ej. navegador, idioma...)
El Servicio de Nombres (DNS) Los nombres son más fáciles de recordar que las IPs (al menos, para humanos) Traduce nombres a IPs (gsyc.es -> 193.147.71.64) Es un protocolo del nivel de aplicación. Es opaco al usuario. Utiliza el modelo cliente-servidor. Es un sistema jerárquico con subdelegación. Se usan cachés para ahorrar tiempo (y peticiones).
Ejemplo de Funcionamiento de DNS
Uno de los primeros Clientes: Mosaic
Clientes y Mercado
Introducción e historia
Respuesta HTTP El servidor responde a la petición HTTP del cliente La respuesta incluye Cabecera(s) Una ĺınea en blanco Contenidos (en texto o binarios) HTTP/1.1 200 OK Date: Mon, 23 May 2005 22:38:34 GMT Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux) Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT Accept-Ranges: bytes Content-Length: 438 Connection: close Content-Type: text/html; charset=utf-8 [contenido]
Servidores y Mercado
Contenidos dinámicos Hasta ahora sólo hemos considerado contenidos estáticos (o sea, documentos e imágenes que ya tenemos en el servidor) Pero a veces nos interesa crear contenidos dinámicos De esta manera podemos adaptar la respueta al cliente Y podemos ofrecer los demás servicios de Internet vía web Hay varias tecnologías para hacer contenidos dinámicos: En el servidor: CGIs, PHP, Zope... En el cliente: JavaScript, Java, AJAX...
Autenticación y Sesiones Si hacemos contenidos adaptados al cliente, es probable que queramos que sólo él acceda a los mismos Necesitamos mecanismos de autenticación: login y password. Por desgracia, las peticiones HTTP son independientes... necesitaríamos autenticarnos con cada petición! Para solucionar este problema, existen varios métodos: Mediante peticiones personales. Mediante el uso de cookies. Problemas de privacidad: logging y cookies
Seguridad: HTTPS HTTP es un protocolo de texto en claro. Cualquiera en un punto intermedio puede mirar en los paquetes... y leerlos! Puede que no nos guste eso. HTTPS cifra la conexión.
Introducción Ingeniería de Telecomunicación grex@gsyc.es GSyC, Universidad Rey Juan Carlos 24 de noviembre de 2008