You are on page 1of 43

UNIVERSIDAD NACIONAL AUTONOMA DE NICARAGUA UNAN-Len

Facultad de Ciencias y Tecnologas Departamento de Computacin APLICACIONES TELEMTICAS TEMA III: EL PROTOCOLO HTTP

Ing. Denis Leopoldo Espinoza Hernndez

Len, Nicaragua

Introduccin al servicio WEB


WWW:World Wide Web Aplicacin de red distribuida basada en el modelo Cliente-Servidor. Servicio para acceso a informacin, a documentos vinculados y distribuidos en muchos Host en Internet. Red de documentos vinculados. Posibilita, de manera sencilla: Recibir informacin. Publicar informacin. Navegar por un ocano de informacin, de sitios WEB a travs de hiperenlaces y la interaccin de diferentes pginas WEB. Funciona bajo demanda Los usuarios reciben y publican lo que quieren y cuando quieren.

Introduccin al servicio WEB


La WEB impuso Internet sobre otras redes de datos. Historia: 1989: inicio del servicio WEB, slo texto. 1991: primera demostracin pblica. 1993: Mosaic, primer Navegador grfico. Posteriormente el boom de Internet. Navegadores multimedia: Netscape Navigator, MS Internet Explorer, Mozilla, etc.

Elementos de la Arquitectura Web


Pginas: HTML, hipertexto,

hiperenlaces.
Objetos: Pueden residir o no en el mismo Host. Direccionado: URL: Uniform Resource Locator. Entidades funcionales: Navegador,

Servidor WEB.
Protocolo HTTP.

Elementos de la Arquitectura Web


1. Pginas WEB Contienen los denominados objetos WEB Generalmente formada por: Fichero HTML base. Diferentes objetos referenciados, en diferentes formatos posibles: Texto ordinario, hipertexto, imgenes, vdeos, audio. Vinculados o no a otras pginas. 2. Objetos WEB Archivos: HTML, JPEG, etc. Cada uno direccionable a travs de un nico URL.

Elementos de la Arquitectura Web


3. Direccionado WEB Se utiliza un esquema de direccionado para localizar recursos en la red en base a lo que se denomina URI (Universal Resource Identifier), segn: Su ubicacin, a travs de un URL (Uniform Resource Locator). Sus nombres, a travs de un URN (Universal Resource Name), ms adecuado para servidores y contenidos replicados. URL: Uniform Resource Locator Elemento para el direccionamiento de recursos en la red. Apunta a un Host determinado, y a travs de ste a un objeto en particular. P.e, para direccionamiento WEB.

Elementos de la Arquitectura Web


Tipos de Recursos: Estticos: archivos Dinmicos: el resultado de la ejecucin de un programa, el resultado de una consulta a una base de datos, la traduccin automtica de un documento, etc. Componentes de una ULR en HTTP: http://<host>:<puerto>/<path>?<consulta>
esquema nombre o IP y puerto por defecto el 80 path dentro del servidor y nombre del recurso Para enviar informacin adicional al servidor

Elementos de la Arquitectura Web


Se han definido diferentes tipos de URLs segn el protocolo de acceso. Posibilitan utilizar el Navegador como programa de acceso a diferentes aplicaciones de Internet: Acceso integrado a Internet a travs del Navegador WEB. Se puede prescindir de programas de interfaz especializados. Ejemplos: Servicio FTP Telnet Correo Archivos en la mquina Ejemplo ftp://ftp.cs.vv.nl/pub/readme telnet://www.w3.org:80 mailto:cime@gmail.com file://hipertexto/html/mipagina.html

Elementos de la Arquitectura Web 4. Navegador Agente de Usuario Software que sirve de interfaz entre usuario y aplicacin WEB. Posibilita atrapar y visualizar pginas WEB, y navegar por sus contenidos. Presentan diferentes caractersticas de configuracin. Cliente HTTP Software de comunicacin que implementa la parte cliente del protocolo HTTP.

Elementos de la Arquitectura Web


5. Servidor WEB Comprende dos entidades funcionales: Base de datos: Alberga los contenidos WEB (objetos). Cada objeto direccionable con el correspondiente URL. Servidor HTTP: Software de comunicacin que implementa la parte servidor del protocolo HTTP. Ejemplos ms conocidos: Apache, quizs el ms utilizado y MS Information Server.

HTTP (Hyper Text Transfer Protocol)


Protocolo del nivel de aplicacin para el servicio WEB, y en general para transferencia de recursos en uno u otro sentido. Dos versiones compatibles entre si: HTTPv1.0: RFC 1945. HTTPv1.1: RFC 2616. Se implementa en dos partes: Cliente HTTP. Servidor HTTP. Clientes y servidores con diferentes versiones pueden interactuar.

HTTP (Hyper Text Transfer Protocol)


Define: Sintaxis y semntica de los mensajes. Procedimientos del protocolo. Basados en simples transacciones: peticin respuesta. Clientes solicitan objetos (generan peticiones). Mensajes ASCII Servidor transfiere objetos (generan respuestas) . Mensajes ASCII tipo MIME (RFC 822). Tipos de datos: HTTP est abierto a nuevos tipos de datos ya que utiliza tipos MIME. Los mensajes de Respuesta incluyen una cabecera que indica el tipo de datos en el cuerpo del mensaje.

HTTP (Hyper Text Transfer Protocol)


HTTP slo define el protocolo de comunicacin entre el Navegador y el servidor WEB no interviene en cmo el Navegador interpreta los objetos. El Navegador se ocupa de la gestin (presentacin) de los datos que porta un mensaje de Respuesta de manera directa o indirecta. Directa: el Navegador los presenta, caso de disponer de los medios necesarios para ello. (Plugins) Indirecta: el Navegador no dispone de los medios necesarios, invoca una aplicacin en el Host del cliente, p.e: Visor de imgenes, reproductor de sonido, reproductor de vdeo, etc.

HTTP (Hyper Text Transfer Protocol)


Protocolo sin estado y no conectivo El servidor no guarda informacin de los clientes ni de las transacciones HTTP. Se simplifica el diseo de los servidores se pueden disear Servidores WEB de gran rendimiento que pueden manejar a la vez cientos de conexiones TCP. Protocolo de transporte para HTTP El estndar no especifica cul pero en la prctica se soporta sobre TCP, puerto 80. Por tanto: Toda transaccin HTTP requiere de una conexin TCP. HTTP no requiere de procedimientos de control de errores es un protocolo relativamente simple.

HTTP (Hyper Text Transfer Protocol)


Tipos de conexiones TCP Las transacciones HTTP se pueden soportar sobre dos tipos: Conexiones TCP no persistentes Solucin nica para HTTPv1.0 Tambin soportada por HTTPv1.1 Adecuadas en los inicios del servicio WEB, pginas con slo texto HTML. Conexiones TCP persistentes Solucin por defecto para HTTPv1.1. Adecuada para contenidos multimedia.

HTTP (Hyper Text Transfer Protocol)


Conexin TCP no persistente Se requiere de una conexin TCP independiente para la transferencia de cada objeto con el fin de permitir la posibilidad de que un conjunto de enlazado de pginas pueda estar distribuido entre varios servidores. Gestin de tantas conexiones TCP como nmero de objetos a transferir, independientemente de que todos los objetos estn en el mismo servidor WEB. Cada conexin TCP slo transporta dos mensajes HTTP: Mensaje de peticin y mensaje de respuesta. Una transaccin HTTP.

HTTP (Hyper Text Transfer Protocol)


Modos para el tipo no persistente: 1. Conexiones en serie Slo una conexin TCP abierta en cada momento. Para N objetos se gestionan N conexiones TCP una a una, en serie una tras otra. Ms demora para bajar todo el contenido de una pgina y mayor tiempo de respuesta. 2. Conexiones en paralelo Posibilita varias conexiones TCP abiertas a la vez, en paralelo. Menos demora para bajar todo el contenido de una pgina, menor tiempo de respuesta.

HTTP (Hyper Text Transfer Protocol)


Problemas de las conexiones no persistentes Cada conexin TCP involucra informacin de estado relativa a TCP que hay que gestionar y almacenar en el servidor y en el cliente. Importante carga de trabajo, sobretodo en el servidor, que puede estar manejando muchas peticiones a la vez. Cada objeto sufre un retardo de entrega de (2RTT + Txo), donde: RTT: Round Trip Time, tiempo de ida y vuelta. Txo: tiempo de transmisin de un objeto.

HTTP (Hyper Text Transfer Protocol)


Retardo de entrega por objeto para conexiones no persistentes
Inicio de la conexin TCP RTT Solicitud del recurso RTT Tiempo de recepcin del archivo Tiempo del cliente Tiempo del servidor Tiempo de transmisin del archivo

HTTP (Hyper Text Transfer Protocol)


Conexin TCP persistente Solucin ms eficiente ya que por una misma conexin TCP: Discurren todas las transacciones HTTP (peticin respuesta) relativas a los diferentes objetos. Se transfieren todos los objetos de una pgina (si estn todos en el mismo servidor). Los objetos de mltiples pginas WEB pueden ser transferidos por la misma conexin TCP si cliente y servidor residen en las mismas mquinas. Normalmente, transcurrido un tiempo (configurable) sin transacciones, servidor HTTP cierra la conexin TCP.

HTTP (Hyper Text Transfer Protocol)


Modos para el tipo persistente 1. Sin entubamiento 2. Con entubamiento 1. Conexiones sin entubamiento Admite slo una transaccin HTTP a la vez: El cliente HTTP slo admite una nueva peticin cuando ha recibido la respuesta a la peticin previa. Cada objeto sufre un retardo de entrega de (RTT + Txo). Desaprovecha los recursos del servidor.

HTTP (Hyper Text Transfer Protocol)


2. Conexiones con entubamiento Modo por defecto para HTTPv1.1. Admite ms de una transaccin HTTP a la vez. El cliente realiza una peticin HTTP tan pronto encuentra una referencia a objeto. Puede hacer peticiones seguidas para los objetos referenciados sin esperar respuesta a la peticin anterior. Servidor enva respuestas seguidas. Posibilita un mejor aprovechamiento de la conexin TCP y un menor tiempo para descargar el total de objetos en relacin con el modo sin entubamiento.

Mensajes en HTTP
Los mensajes HTTP pueden ser: Solicitudes. Respuestas. Tanto las solicitudes como las respuestas utilizan el formato genrico de emails (RFC-822). Ambos tipos de mensajes consisten de: Una lnea inicial Cero o ms encabezados (headers) Una lnea en blanco Un cuerpo del mensaje (opcional, ej. archivo, datos de una consulta).

Formato del mensaje de Solicitud HTTP

Mtodos del mensaje Solicitud en HTTP


GET: solicitud de lectura de una pgina/objeto. HEAD: solicitud de lectura de slo el encabezado de pgina/objeto, y no el contenido. Para supervisin y depuraciones. POST: solicitud para escribir (insertar) nuevos contenidos en una pgina, sin eliminar los ya existentes. PUT: solicitud para escritura de nueva pgina/objeto . DELETE: solicitud para eliminar contenido en una pgina/objeto. OPTIONS: solicitud para consultar algunas opciones, como propiedades del Servidor o de algn fichero especfico.

Algunas cabeceras del mensaje de Solicitud

Lnea Inicial de una Solicitud HTTP


La lnea inicial de una solicitud tiene tres partes separadas entre s por un espacio: El mtodo (GET, PUT, POST, OPTIONS,TRACE, DELETE,...) El identificador del recurso (URI). La versin del protocolo HTTP en uso. Ejemplos: GET / HTTP/1.1 GET /directorio1/directorio2/index.html HTTP/1.0

Formato del mensaje de Respuesta HTTP

Cdigos de estado en el mensaje de Respuesta HTTP


El cdigo de estado es un entero de 3 dgitos: 1xx: Informativos 2xx: xito 3xx: Redireccin 4xx: Error de cliente 5xx: Error de servidor Los ms comunes: 200 OK: Solicitud exitosa, la respuesta se enva en el cuerpo. 404 Not Found: El recurso no existe. 303 See Other: El recurso se ha movido a otra URL. 500 Server Error: Error no esperado en el servidor.

Algunas cabeceras del mensaje de Respuesta

Lnea Inicial de una Respuesta HTTP


La lnea inicial de una respuesta (llamada lnea de estado) tiene tres partes separadas entre s por un espacio. Versin de HTTP Cdigo de estado Frase explicativa (legible por humanos) Ejemplos: HTTP/1.0 200 OK HTTP/1.0 404 Not Found

Mensajes en HTTP

Ejemplo de una transferencia HTTP


El cliente desea obtener: http://www.ieee.org/numero/uno.htmlEl cliente establece una conexin TCP al puerto 80 de www.ieee.org y enva la solicitud con el mtodo GET. GET /numero/uno.html HTTP/1.0 User-Agent: MiBrowser/2.0 [lnea en blanco] El server responde por la misma conexin con: HTTP/1.0 200 OK Content-Type: text/html Content-Lenght: 50 [lnea en blanco] <html><body> <h1>Mi Archivo HTML</h1> </body></html>

El Mtodo POST
El mtodo POST se usa comnmente para enviar un formulario HTML a un script que se ejecuta en el servidor. En este caso se utilizan Content-Type y Content-Lenght. Ejemplo (enviar las variables nombre=Juan y Apellido=Perez): POST /directorio/script.cgi HTTP/1.0 User-Agent: TuBrowser/1.7 Content-Type: application/x-www-form-urlencoded Content-Length: 26 nombre=Juan&Apellido=Perez

Otros Mensajes de Solicitud HTTP


HEAD: Una solicitud con el mtodo HEAD es similar al GET con la diferencia que en este caso la respuesta solo contiene los encabezados y no el cuerpo. OPTIONS: una peticin de informacin sobre las opciones que soporta el servidor al que se hace la peticin. OPTIONS http://156.35.162.4/index.html HTTP/1.1 HTTP/1.1 200 OK Date: Sun, 19 Jan 2003 18:49:12 GMT Server: Apache/2.0.40 (Red Hat Linux) Allow: GET,HEAD,POST,OPTIONS,TRACE Content-Length: 0 Connection: close Content-Type: text/html; charset=ISO-8859-1

Conexiones Persistentes
La pareja de cabeceras Keep-Alive y Connection, slo est presente en la versin 1.1 del protocolo HTTP, y permite recibir muchos recursos a travs de la conexin TCP recin establecida. El servidor puede incluir el encabezado Connection: close para indicar que luego de enviar la respuesta el servidor debe cerrar la conexin. Un cliente que no soporta conexiones persistentes debe incluir siempre el encabezado Connection: close.

Cache Web
Procedimiento para mejorar las prestaciones del servicio WEB, posibilitando: Reducir el tiempo de obtencin de un objeto, en particular si su tamao es grande y se dispone de poco ancho de banda de acceso. Reducir el trfico WEB y la carga de trabajo de los servidores WEB. Se basa en el almacenaje en cach de copias de objetos obtenidos En el cliente WEB, y lo gestiona el Navegador En un servidor de red actuando de intermediario, un Proxy WEB El problema es como saber si el objeto que se tiene en en cach del no ha sido actualizado en el servidor WEB.

Servidor Proxy Web

GET Condicional
Garantiza la actualidad de los objetos recibidos en el Navegador mediante cach. Al solicitar la pgina la primera vez se solicita y se guarda la pgina en la cache, almacenando el valor Last-Modified. HTTP/1.1 200 OK Date: Sun, 19 Jan 2003 18:55:49 GMT Server: Apache/2.0.40 (Red Hat Linux) Last-Modified: Wed, 18 Dec 2002 12:11:06 GMT ETag: "27ae90-44-9221aa80 Content-Length: 68 Connection: close Content-Type: text/html <html> <!- codigo de la pgina -->

GET Condicional
Cuando la pgina es solicitada nuevamente: El GET incluye la cabecera If-Modified-Since. Si la respuesta ha sido modificada se transmite la entidad con cdigo de estado 200. Si la respuesta no ha sido modificada no se transmite la entidad y se enva un cdigo de estado 304. GET //css/contenidos.css HTTP/1.1 . If-Modified-Since: Fri, 23 Jun 2006 08:45:05 GMT
HTTP/1.1 304 Not Modified Date: Fri, 25 Aug 2006 13:49:41 GMT Server: Apache/2.0.54 (Ubuntu) PHP/5.0.5-2ubuntu1.3

Las Cookies
Son pequeos trozos de informacin que:
El servidor la enva al cliente

El navegador la almacena

El navegador la enva en cada peticin y el servidor La usa para dar una respuesta selectiva

Caractersticas de las Cookies


Las principales caractersticas de las Cookies son: Su principal utilidad es la de solventar la falta de estado en las comunicaciones web. Identificarnos Definir carritos de compra Pueden ser permanentes o tener un tiempo de vida mximo Tienen restricciones de seguridad: Solo el servidor que las gener puede acceder a ellas.

Ejemplo de Cookies
El Servidor crea la Cookies: HTTP/1.1 200 OK Date: Fri, 25 Aug 2006 08:10:54 GMT Server: Apache Set-Cookie: JSESSIONID=82818520216567447A4FFA18D02F8A9D;Path=/ El Cliente enva la Cookies en cada peticin:
GET /nada.jsp HTTP/1.1\r\n Host: www.lne.es\r\n Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n Keep-Alive: 300\r\n Connection: keep-alive\r\n Cookie: __utma=184110843.1800093202.1155130588.1156405623.1156489485.10; JSESSIONID=82818520216567

You might also like