360 likes | 448 Views
La Web y el HTTP. Antes del año 1990 Internet era usado por. Investigadores. Académicos. Estudiantes. Usado para. Transferir archivos. logearse remotamente. Enviar/recibir noticias. E-mail. Mundo académico y de investigación. A principios de 1990 llego la aplicación mas popular.
E N D
Antes del año 1990 Internet era usado por Investigadores Académicos Estudiantes Usado para Transferir archivos logearse remotamente Enviar/recibir noticias E-mail Mundo académico y de investigación
A principios de 1990 llego la aplicación mas popular. La World Wide Web Red de datos Redes de datos unifico
La Web opera (ondemand) Usuario Lo que quiere cuando quiere recibe • Difiere de la televisión donde hay que sintonizar un programa a la hora y día indicados
HyperLinks/ Los buscadores • Los grafcos hacen mas atractiva la interacción • Aplicaciones Java/Javascripts • Aplicaciones posteriores a 2003 Youtube/Gmail/Facebook/Twitter
HyperText Transfer Protocol • El corazón de la web • RFC1945/RFC2612 • Es implementado en dos programas • Implementado en diferentes Host • Intercambian mensajes intercambiando mensajes HTTP
HTTP define la estructura de los mensajes y como el cliente y el servidor intercambian mensajes.
Definciones • Pagina Web -También llamado documento • Esta constituido por documentos • Un archivo HTML • Imágenes JPEG • Applet de Java • Un video clip
La mayoría de las paginas Web consisten en un archivo base HTML y varios objetos referenciados. • Ejemplo • Si una pagina web contiene un HTML y 5 imágenes esta contiene 6 objetos. • El archivo HTML hace referencia a los objetos.
HTTP define • como los clientes pueden pedir paginas web de los web servers • Como los servidores transfieren paginas web a los clientes • HTTP usa TCP
El cliente HTTP inicia una conexión con el servidor. • El browser y el servidor acceden a esa conexión mediante los sockets • El cliente envía un mensaje de petición http requestmessage a través de su socket • El cliente recibe un mensaje de respuesta response mesage
El servidor recibe una petición de conexión través de su socket • El servidor envía una respuesta
Una vez que envía el mensaje este esta en manos de la capa de transporte • HTTP no tiene que preocuparse de la perdida de información, etc. Eso lo realiza la capa de transporte/TCP
Es importante mencionar que el servidor envía los archivos pedido por el usuario, sin guardar información de estado acerca de el. • Esto es por que HTTP no guarda información de estados • Un servidor web se supone que siempre debe esta disponible y con una dirección IP fija, y debe de poder servir a millones de usuarios.
Conexión HTTP no persistente • Supongamos que tenemos una pagina Html y 10 imágenes Jepg, es decir 11 objetos • De la pagina http://www.razonamientoartificial/redes
El proceso de cliente inicia una conexión TCP, al servidor www.razonamienotartificial.com, usando el puerto 80, el cual es el default para el protocolo HTTP. Asociado a la conexión TCP habrá un socket en el cliente y el servidor. • El cliente envía un mensaje de petición HTTP el mensaje inlcuye la ruta /redes/index.html
El servidor recibe la petición por su socket, recupera el objeto /redes/index.html de su disco duro/RAM/donde este, encapsula el objeto en el mensaje de respuesta y lo envía al cliente. • El servidor le avisa a TCP que va a terminar la conexión TCP (en realidad no termina hasta que se confirma que llego bien a su destino)
El cliente HTTP recibe el mensaje. La conexión TCP termina. El mensaje que recibe es un objeto HTML. El cliente extrae el archivo del mensaje respuesta, lo examina y encuentra una referencia a otros 10 objetos Jepg • Los pasos anteriores se reputen por cada objeto referenciado
HTTP n tiene nada que ver en como interpretar la pagina web • HTTP solo define la forma en comunicar el programa cliente con el servidor.
Importante-Los pasos anteriores ilustran el proceso de conexiones no persistentes en el que • Cada conexión TCP es cerrada una ves que el cliente envió el objeto • Si el usuario requiriera los 11 objetos se tendrían que realiza 11 conexiones
Iniciar conexión Archivo pedido Tiempo para transmitir el archivo Archivo entero recibido Tiempo en el cliente Tiempo en el servidor
Conexiones persistentes con HTTO • Cada nueva conexión debe ser mantenida y mantenida por cada objeto requerido • Los buffers TCP deben de mantener las variable en el cliente y el servidor. (mas espacio de memoria) por cada conexión • Con este tipo de conexiones, el server deja la conexión TCP abierta hasta recibir una respuesta.
Peticiones y las respuestas son manejadas a través de la misma conexión. • Del ejemplo anterior las imágenes y la pagina web son enviadas a través de la misma conexión
Formato de mensajes de HTTP GET /algunadireccion/pagina.html HTTP/1.1 Host:www.razonamienotartificial.com Connection: close no persistente User-agent: Mozilla/5.0 Accept-language: es
Request line • Tiene tres campos • El campo del metodo, el campo del url y la version de HTTP • El campo del metodo puede tener los siguientes valores. • GET,POST,HEAD,PUT y DELETE • La mayoia de los mensajes usan GET
GET • Es el mas usado para obtener objetos, identificado por un URL
www.buscador.com/busqueda?redes&tcp • Usando GET
Respuesta del cliente HTTP/1.1 200 OK Connection:closecerrar después de enviar Date: tue,09 Aug 2013 15:44:04 GMT->Indica la fecha en que fuer creada la respuesta. Server: Apache/2.2.3 (CentOS) Last-Modified: tue,09 Aug 2013 15:11:04 GMT-> Cuando fue creado Content-Lenght:6821-> en bytes Content-Type:text/html (Datos…………………….)
200 OK: • 301 Movido permanentemente • 400 Badrequest: El servidor no entendió lo que pidió el cliente • 404 • 505 Versión de HTTP no soportada