HTTP
HTTP
HTTP
Índice
Un poco de historia
Internet vs. WWW
URI, URL, URN
El protocolo HTTP
Extensiones de la araña web
2
Sistemas Cliente / Servidor. Tema 2
Un poco de historia
3
Sistemas Cliente / Servidor. Tema 2
4
Sistemas Cliente / Servidor. Tema 2
HTTP
Cliente Servidor
TCP/IP
HTML
Internet
5
Sistemas Cliente / Servidor. Tema 2
Servidor:
respuesta HTTP: devuelve el documento (recurso) solicitado o
mensaje de error
6
Sistemas Cliente / Servidor. Tema 2
8
Sistemas Cliente / Servidor. Tema 2
URLs HTTP:
http://host[:port][abs_path]
? : prefijo de consulta
http://esto.es/un/ejemplo.cgi?arg1=valor&arg2=otro+valor
11
Sistemas Cliente / Servidor. Tema 2
El protocolo HTTP
HTTP (HyperText Transfer Protocol) es un protocolo
de aplicación diseñado para la transmisión de
documentos sobre Internet
12
Sistemas Cliente / Servidor. Tema 2
El Protocolo HTTP
La primera versión fue la HTTP/1.0, RFC 1945
En 1998 comenzó a utilizarse la versión 1.1, RFC 2616
HTTP/1.1 es compatible con HTTP/1.0
Utiliza TCP como protocolo de transporte
Comunicación Cliente / Servidor:
El cliente envía un mensaje (petición HTTP) al servidor solicitando un
recurso
El servidor recibe el mensaje, lo procesa y responde con un mensaje
de respuesta HTTP que contiene el recurso solicitado
Se trata de un protocolo sin estado (sin sesión)
Carece de medios para relacionar información concerniente a una
petición anterior
Solución: cookies
13
Sistemas Cliente / Servidor. Tema 2
El Protocolo HTTP
HTTP/1.0 utiliza conexiones no persistentes
Cada conexión TCP se cierra una vez el servidor ha enviado el recurso
Ejemplo: http://www.uji.es/index.html
El cliente inicia una conexión TCP en el puerto 80 de la máquina www.uji.es
El cliente envía un mensaje de petición HTTP al servidor, incluyendo el
recurso solicitado /index.html
El servidor recibe la petición, recupera el objeto /index.html y lo encapsula
en el mensaje HTTP de respuesta
El servidor cierra la conexión
El cliente recibe el mensaje de respuesta, extrae el documento HTML y
encuentra referencias a imágenes
El cliente repite los pasos anteriores por cada imagen referenciada
14
Sistemas Cliente / Servidor. Tema 2
El Protocolo HTTP
HTTP/1.0 utiliza conexiones no persistentes
Sobrecarga al servidor debido a la reserva de recursos para cada petición
HTTP/1.1 permite utilizar conexiones persistentes
El servidor mantiene abierta la conexión después de enviar la respuesta
Varias peticiones/respuestas pueden ser enviadas por la misma conexión
El servidor cierra las conexiones cuando no se utilizan (time-out)
Comunicación con y sin pipelining :
Sin pipelining :
El cliente envía una nueva petición sólo cuando ha llegado la respuesta anterior
La conexión está inactiva durante cierto tiempo, consumiendo recursos en el
servidor
Con pipelining :
El cliente envía nuevas peticiones tan pronto encuentra referencias en los objetos
previamente recibidos
15
Sistemas Cliente / Servidor. Tema 2
El Protocolo HTTP
Formato de una petición HTTP
16
Sistemas Cliente / Servidor. Tema 2
El Protocolo HTTP
Formato de una respuesta HTTP
HTTP/1.1 200 OK CRLF
Date: Mon, 27 Sep 1999 21:23:20 GMT CRLF
Server: Apache/1.3.3 (Unix) CRLF
Last-Modified: Sun, 26 Sep 1999 ... CRLF
Content-Length: 5654 CRLF
(...)
Content-Type: text/html CRLF
CRLF
<PAGE HTML>
[cierre de la conexión]
18
Sistemas Cliente / Servidor. Tema 2
20
Sistemas Cliente / Servidor. Tema 2
Cabeceras de la petición:
Host (HTTP/1.1 Obligatoria!!!)
Referer
User-Agent
From
If-Modified-Since (GET)
Connection (HTTP/1.1)
Cabeceras de la respuesta:
Server
Location (redirecciones)
Connection (HTTP/1.1)
El protocolo HTTP
¿Cómo gestiona las peticiones el servidor web?
Si el recurso es un fichero, lo envía como respuesta
Si el recurso es un programa, lo ejecuta
La manera en la que servidor web y programa se
comunican se rige por el CGI (Common Gateway
Interface)
25
Sistemas Cliente / Servidor. Tema 2
26
Sistemas Cliente / Servidor. Tema 2
Bibliografía
Un poco de historia
World Wide Web Consortium. A Little History of the World Wide Web.
http://www.w3.org/History.html
Fah-Chung Cheong. Internet Agents: Spiders, Wanderers, Brokers, and
Bots. New Riders Publishing, 1996.
P. Denning. The ARPANET after twenty years. American Scientist. Nov-Dec,
1989, pp. 530 – 534.
URI, URL, URN
T. Berners-Lee, R. Fielding and L. Masinter. Uniform Resource Identifiers
(URI): Generic Syntax and Semantics. RFC2396, Agosto 1998.
http://www.faqs.org/rfcs/rfc2396.html
World Wide Web Consortium. Naming and Addressing: URIs, URLs, ...
http://w3c.org/Addressing/
27
Sistemas Cliente / Servidor. Tema 2
Bibliografía
World Wide Web Consortium. HTTP – Hypertext Transfer
Protocol. http://w3c.org/Protocols
HTTP 1.0 (RCF 1945). http://www.w3.org/Protocols/rfc1945/rfc1945
HTTP 1.1 (RFC 2616). ftp://ftp.isi.edu/in-notes/rfc2616.txt
28