Tema 2 El Servicio Web Eduardo Martínez Graciá Humberto Martínez Barberá Departamento de Ingeniería de la Información y las Comunicaciones Universidad de Murcia
Introducción Nace en el CERN, en 1989 Surge de la necesidad de coordinar grupos investigadores internacionales. La propuesta inicial se debe a Tim Berners-Lee En 1991 aparecen los primeros prototipos (basados en texto) En 1993 aparece Mosaic, el primer navegador con interfaz gráfica, su autor fue Marc Andreessen. En 1994 se funda el WWW Consortium: http://www.w3.org Nuevas Tecnologías para la Transmisión de Información. Tema 2 2
El Modelo Web CGI - para interacción y contenido dinámico Servidor news Servidor ftp Bases de datos Software propietario URL para referencias Servidor HTTP Protocolo HTTP para transporte Browsers (navegadores) para visualizar HTML Browsers Browsers Componentes: Servidor WEB Navegador o Browser URL (Uniform Resource Locator) HTML (HyperText Markup Language) HTTP (HyperText Transfer Protocol) Nuevas Tecnologías para la Transmisión de Información. Tema 2 3
Hypertext Markup Language Lenguaje de descripción de contenidos Emplea etiquetas para marcar el comienzo y final de un formato "Pretende" ser independiente de la plataforma Incluye gráficos e hiperenlaces www.tres.com www.uno.com www.dos.com Nuevas Tecnologías para la Transmisión de Información. Tema 2 4
Uniform Resource Locator (1) Identificador de recursos de Internet Consta de: Protocolo: necesario siempre Nombre de dominio: equipo en el que se encuentra el servidor. Login y password (Opcional) Número de puerto: Opcional (se asume el valor por defecto) Localización: directorio y fichero. Opcional. Nuevas Tecnologías para la Transmisión de Información. Tema 2 5
Uniform Resource Locator (2) Ejemplos: Protocolo Dirección del recurso Detalles del recurso: directorio y fichero http://www.dif.um.es:8096/alumnos/primero/index.html Nombre de dominio Puerto telnet://mac.dif.um.es Detalles del recurso: nombre del servidor mailto:edumart@fcu.um.es Detalles del recurso: dirección electrónica Nuevas Tecnologías para la Transmisión de Información. Tema 2 6
Uniform Resource Locator (3) Especificadores de protocolo: Especificador ftp Protocolo File Transfer Protocol gopher Gopher protocol http HyperText Transfer Protocol https Secure HTTP mailto Dirección de correo de Internet news NNTP Usenet Protocol telnet Protocolo Telnet wais Protocolo WAIS file Acceso a ficheros locales URL con login y password: //nombreusuario:password@nombre.dominio:puerto/ Nuevas Tecnologías para la Transmisión de Información. Tema 2 7
Servidor Web Puerto 80 pagina1.html INTERNET Petición del CLIENTE URL SERVIDOR WEB htdocs dir1 pagina2.html Páginas estáticas dir2 pagina1.html CGI Puerto 80, protocolo de transporte TCP Dos tipos de recursos: cgi-bin Páginas HTML estáticas Programas gateway con el interfaz CGI (Common Gateway Interface) Los recursos se identifican con URLs busqueda.cgi inscripcion.cgi Contenido dinámico Base de datos Nuevas Tecnologías para la Transmisión de Información. Tema 2 8
Navegador (1) El control de la conexión reside en el navegador El navegador interpreta el contenido de acuerdo con el tipo MIME (Multiporpose Internet Mail Extensions) La mezcla de hipertexto y otros medios se llama hipermedia En función del Content-Type de un documento, el navegador lanza un visor externo o helper El navegador dispone de una caché local con la que reduce el número de peticiones Facilita la navegación con botones y resaltando los hiperenlaces Nuevas Tecnologías para la Transmisión de Información. Tema 2 9
Navegador (2) mime.types HTTP Cliente Servidor GET sonido.au Content-Type: audio/basic Content-Transfer-Encoding: 8bit %H&287xsq3eUH/&!HI... sonido.au Nuevas Tecnologías para la Transmisión de Información. Tema 2 10
Hypertext Transfer Protocol (HTTP) Funcionamiento HTTP básico: El cliente abre una conexión con el servidor web El cliente envía un mensaje de petición El servidor envía un mensaje de respuesta El servidor cierra la conexión 1. Abre la conexión 2. Petición 3. Respuesta Cierra la conexión BROWSER SERVIDOR WEB Nuevas Tecnologías para la Transmisión de Información. Tema 2 11
HTTP (1) Mensajes HTTP de petición. Constan de tres partes: 1ª parte. Línea de petición MétodoHTTP Identificador VersiónHTTP MétodoHTTP: acción que el cliente solicita. Puede ser: GET, POST, HEAD, DELETE, PUT Identificador: URL sin protocolo ni nombre del servidor VersiónHTTP: suele ser: HTTP/1.0 ó HTTP/1.1 2ª parte. Líneas de cabeceras de petición Informan al servidor sobre el cliente y lo que solicita. 3ª parte. Cuerpo de la petición Datos transferidos del cliente al servidor Nuevas Tecnologías para la Transmisión de Información. Tema 2 12
HTTP (2) Formato general de una petición HTTP y ejemplo: method sp URL sp version cr lf nombre de cabecera : valor cr lf Línea de petición Líneas de cabeceras nombre de cabecera : valor cr lf cr lf Cuerpo de la petición GET /servicios/prueba.html HTTP/1.1 Host: ants.dif.um.es Connection: close User-agent: Mozilla/4.06 Accept-language: es Accept: */html Accept: */text [Una línea en blanco, conteniendo sólo CRLF] Nuevas Tecnologías para la Transmisión de Información. Tema 2 13
HTTP (3) Campos de cabecera de petición comunes: User-Agent: Informa del tipo de navegador que emplea el cliente Referer: URL del documento desde el que se accedió al actual If-Modified-Since: sólo se quiere el documento si se ha modificado Accept-Language: lenguajes aceptados por el navegador Host: servidor al que el cliente envía la petición Connection: se emplea para mantener la conexión Accept: tipos de datos aceptados por el cliente Nuevas Tecnologías para la Transmisión de Información. Tema 2 14
HTTP (4) Mensajes de respuesta. Constan, también, de tres partes: 1ª parte. Línea de estado VersiónHTTP CódigoEstado Explicación VersiónHTTP: versión del protocolo: HTTP/1.0 ó HTTP/1.1 CódigoEstado: número entre 200 y 599 2xx Éxito 3xx Redireccionamiento 4xx Error del cliente 5xx Error del servidor Explicación: información descriptiva del estado 2ª parte. Líneas de cabeceras de respuesta: Informan al cliente sobre el servidor y el recurso consultado. 3ª parte. Cuerpo de la respuesta Datos enviados del servidor al cliente Nuevas Tecnologías para la Transmisión de Información. Tema 2 15
HTTP (5) Formato general de una respuesta y ejemplo: version sp código estado sp frase cr lf Línea de estado nombre de cabecera : valor cr lf Líneas de cabeceras nombre de cabecera : valor cr lf cr lf Cuerpo de la respuesta HTTP/1.1 200 OK Connection: close Date: Tue, 09 Mar 1999 19:49:56 GMT Server: Apache/1.2.4 Last-Modified: Tue, 09 Mar 1999 19:44:32 GMT Content-Length: 120 Content-Type: text/html <html><head> <title> Fichero HTML de prueba </title> </head><body> <h1>este es un fichero de prueba</h1> </body></html> Nuevas Tecnologías para la Transmisión de Información. Tema 2 16
HTTP (6) Campos de cabecera de respuesta comunes: Location: nueva localización del documento solicitado Server: nombre y versión del software servidor Date: día y hora en la que se transmite el documento MIME-version: versión del protocolo MIME usada por el servidor Content-Length: longitud en bytes del cuerpo de la respuesta Content-Type: tipo MIME que identifica el tipo de dato de la respuesta Last-Modified: fecha y hora en la que se modificó por última vez Nuevas Tecnologías para la Transmisión de Información. Tema 2 17
Cookies (1) Una cookie es información que un servidor puede enviar al cliente para que éste la almacene y se la reenvíe en posteriores accesos. La transferencia de la cookie se realiza en un mensaje de respuesta HTTP (RFC 2109). Set-Cookie: nombre=valor; expires=fecha; path=camino; domain=ambito; secure Almacén de Cookies Cliente Cookie: nombre1=valor1; nombre2=valor2;... Aplicaciones de las cookies: Recordar preferencias de un cliente para generar contenido personalizado Para almacenar información de sesión (ej: carro de la compra) En general: para simular sesiones, dado que el protocolo HTTP carece de ellas. Nuevas Tecnologías para la Transmisión de Información. Tema 2 18 Servidor
Cookies (2) Iniciación de la cookie por el servidor HTTP: insertado por un CGI en la directiva Set-Cookie de la cabecera de respuesta HTTP. nombre=valor : asocia a una propiedad un valor específico. Espacio, coma y punto y coma se deben traducir al código URL. expires=fecha : fecha de caducidad de la cookie. Formato: weekday, DD-Month-YYYY HH:MM:SS GMT Por defecto: al cerrar el navegador. domain=ámbito : el cliente identifica con ámbito si debe enviar el cookie al servidor accedido. Por defecto: el servidor que genera la cookie. path=camino : especifica los recursos a los que se envía la cookie. Por defecto: el script que genera la cookie. secure : sólo se envía cuando se emplea el protocolo HTTPS Un servidor puede insertar varias directivas Set-Cookie en la cabecera Una cookie se puede eliminar indicando en expires una fecha pasada Nuevas Tecnologías para la Transmisión de Información. Tema 2 19
Cookies (3) Devolución de una cookie por parte del cliente Al conectarse a un servidor web, el navegador comprueba si dispone de alguna cookie con domain y path que verifican la URL consultada Con las cookies que verifiquen la URL, el navegador inserta en la cabecera de petición: Cookie: nombre1=valor1; nombre2=valor2;... Nuevas Tecnologías para la Transmisión de Información. Tema 2 20
GET condicional (1) Objetivo: uso de cachés de Web para evitar la transferencia de recursos web. HTTP permite al cliente comprobar si un objeto almacenado en caché ha sido modificado. GET condicional: la solicitud HTTP incluye la cabecera If-Modified-Since. Ejemplo: un cliente solicita un objeto que no está en caché: GET /fruit/kiwi.gif HTTP/1.0 User-agent: Mozilla/4.0 Nuevas Tecnologías para la Transmisión de Información. Tema 2 21
GET condicional (2) El servidor envía un mensaje de respuesta con la cabecera Last- Modified, que se asocia al objeto en la caché del cliente HTTP/1.0 200 OK Date: Web, 12 Aug 1998 15:39:29 Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 09:23:24 Content-Type: image/gif (data) Una nueva solicitud del mismo objeto incluye la cabecera If- Modified-Since con la fecha de última modificación del objeto en caché. GET /fruit/kiwi.gif HTTP/1.0 User-agent: Mozilla/4.0 If-modified-since: Mon, 22 Jun 1998 09:23:24 Nuevas Tecnologías para la Transmisión de Información. Tema 2 22
GET condicional (3) Respuesta del servidor, en caso de que no se haya modificado el objeto desde la fecha indicada en la cabecera de petición If-Modified-Since HTTP/1.0 304 Not Modified Date: Wed, 19 Aug 1998 15:39:29 Server: Apache/1.3.0 (Unix) (cuerpo vacío) Nuevas Tecnologías para la Transmisión de Información. Tema 2 23
Servidores proxy Son entidades de red en las que los clientes delegan la realización de solicitudes HTTP. Secuencia de uso de un proxy: El navegador establece una conexión con el proxy y le envía la solicitud HTTP. La cabecera Host indica el servidor original. El proxy comprueba si tiene una copia del objeto almacenada localmente. En tal caso, le envía el objeto al navegador en un mensaje HTTP de respuesta. Si el proxy no tiene el objeto, abre una conexión con el servidor original y le envía una petición HTTP del objeto requerido por el navegador. El servidor original envía la respuesta al servidor proxy. El proxy almacena una copia en su caché y redirige otra copia en una respuesta HTTP al navegador, por la conexión establecida en el primer paso. Ventajas del uso de proxys: Reducción del tiempo de respuesta Reducción del tráfico web a través de la red de acceso a Internet, y por tanto reducción del coste de conexión. Nuevas Tecnologías para la Transmisión de Información. Tema 2 24