Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2: Capa Aplicación 1
Capítulo 2: Capa Aplicación
❒ 2.1 Principios de la ❒ 2.6 P2P Compartición de
aplicaciones de red archivos
❒ 2.7 Programación de
❒ 2.2 Web y HTTP
Socket con TCP
❒ 2.3 FTP ❒ 2.8 Programación de
❒ 2.4 Correo Electrónico socket con UDP
❍ SMTP, POP3, IMAP ❒ 2.9 Construcción de un
servidor WEB
❒ 2.5 DNS
2: Capa Aplicación 2
Web y HTTP
Primero algo de jerga
❒ Una página Web consiste de objetos
❒ Objetos pueden ser archivos HTML, imágenes
(JPEG, GIF,...), Java applets, archivos de audio,
archivos de video,…
❒ Páginas Web consisten de un archivo HTML base el
cual incluye referencias a objetos
❒ Cada objeto es direccionable por un Universal
Resource Locator (URL)
❒ Ejemplo URL:
www.elo.utfsm.cl/images/logoelo.png
Nombre de la máquina Nombre de camino (path name)
2: Capa Aplicación 3
HTTP Generalidades
HTTP: hypertext transfer
protocol HT
TP
r eq
❒ Protocolo de la capa aplicación PC running HT ues
TP t
de la Web Explorer res
pon
se
❒ Modelo cliente/servidor
❍ cliente: browser que
uest
requiere, recibe, re q
T P n se Server
“despliega” objetos Web o
HT r es
p running
❍ servidor: Servidor Web T TP Apache Web
H server
envía objetos en respuesta
a requerimientos
Mac running
❒ HTTP 1.0: RFC 1945 Navigator
❒ HTTP 1.1: RFC 2068
2: Capa Aplicación 4
HTTP generalidades (cont.)
Usa TCP: HTTP no tiene “estado”
❒ cliente inicia conexión TCP ❒ El servidor no mantiene
(crea socket) al servidor, información sobre los
puerto 80 requerimientos del clientes
❒ Servidor acepta conexión
TCP del cliente
❒ Mensajes HTTP (mensajes Protocolos que mantiene
del protocolo de capa “estado” son complejos!
aplicación) son ❒ Historia pasada (estado)
intercambiados entre debe ser mantenida
browser (cliente HTTP) y
❒ Si servidor o cliente se
servidor Web (servidor
HTTP) cae, las vistas del estado
pueden ser inconsistentes,
❒ Se cierra la conexión TCP
deben ser sincronizadas
2: Capa Aplicación 5
Conexiones HTTP
HTTP No-persistente HTTP Persistente
❒ A lo más un objeto ❒ Múltiples objetos
pueden ser enviados
es enviado por una
por una única conexión
conexión TCP. TCP entre el cliente y
❒ HTTP/1.0 usa HTTP servidor.
no-persistente ❒ HTTP/1.1 usa
conexiones
persistentes en su
modo por defecto
2: Capa Aplicación 6
HTTP no-persistente
(contiene texto,
Supongamos que el usuario ingresa URL referencias a 10
www.someSchool.edu/someDepartment/home/index imágenes jpeg )
2: Capa Aplicación 8
Modelo para tiempo de Respuesta
Definición de RTT: tiempo
ocupado en enviar un
paquete pequeño desde
el cliente al servidor y su initiate TCP
regreso. connection
Tiempo de respuesta: RTT
2: Capa Aplicación 12
Subiendo input de formulario
Método Post:
❒ Páginas Webs
usualmente incluyen Métodos URL:
input de formulario ❒ Usa método GET
❒ Input es subido al ❒ Entrada es subida en
servidor en el campos URL de la línea
cuerpo del mensaje de requerimiento:
www.somesite.com/animalsearch?monkeys&banana
2: Capa Aplicación 13
Tipos de Métodos
HTTP/1.0 HTTP/1.1
❒ GET ❒ GET, POST, HEAD
❒ PUT
❒ POST
❍ Sube archivos en cuerpo
❒ HEAD del requerimiento en
❍ Pide al servidor que localización indicada por
el campo URL
deje el objeto
requerido afuera de ❒ DELETE
❍ Borra archivo
la respuesta.
especificado en el
campo URL
2: Capa Aplicación 14
Mensajes HTTP de respuesta
Línea de estatus
(código de estatus
del protocolo HTTP/1.1 200 OK
Frase de estatus) Connection close
Date: Thu, 06 Aug 1998 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Líneas de
encabezado Last-Modified: Mon, 22 Jun 1998 …...
Content-Length: 6821
Content-Type: text/html
2: Capa Aplicación 15
Códigos HTTP de respuesta
En primera línea de respuesta del servidor-> cliente.
Algunos códigos de muestra:
200 OK
❍ request exitoso, objeto requerido es incluido luego en mensaje
301 Moved Permanently
❍ Se movió el objeto requerido, nueva hubicación es especificada
luego en el mensaje (Location:)
400 Bad Request
❍ Requerimiento no entendido por el servidor
404 Not Found
❍ Documento no encontrado en servidor
505 HTTP Version Not Supported
2: Capa Aplicación 16
Probando HTTP (lado cliente)
1. Telnet a tu servidor favorito:
telnet mateo.elo.utfsm.cl 80 abre una conexión TCP al puerto 80
(puerto servidor HTTP por omisión)
en mateo.elo.utfsm.cl.
Cualquier cosa ingresada en enviada
A puerto 80 de mateo
2: Capa Aplicación 17
Probando HTTP (lado cliente): Ejemplo
tarredondo@aragorn:~$ telnet mateo.elo.utfsm.cl 80
Trying 200.1.17.4...
Connected to mateo.elo.utfsm.cl.
Escape character is '^]'.
GET /~tarredondo/info/networks/prueba/hola.html HTTP/1.1
Host: mateo.elo.utfsm.cl
HTTP/1.1 200 OK
MIME-Version: 1.0
Server: Roxen·Challenger/1.3.111
Content-type: text/html
Last-Modified: Mon, 01 Aug 2005 16:23:25 GMT
Date: Mon, 01 Aug 2005 16:06:06 GMT
Content-length: 614
2: Capa Aplicación 18
Probando HTTP (lado cliente): Ejemplo (cont)
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="Author" content="Tomas Arredondo Vidal">
<meta name="GENERATOR"
content="Mozilla/4.77 [en] (X11; U; Linux 2.4.3 i686) [Netscape]">
<title>Redes de Computadores I</title>
<meta content="Tomas Arredondo" name="author">
<meta content="Redes de Cmputadores, Internet, WEB, IT"
name="description">
</head>
<body>
<big style="font-style: italic;">Pagina de prueba para Redes de
Computadores I</big><br>
<br>
</body>
</html>
Connection closed by foreign host.
2: Capa Aplicación 19
Estado usuario-servidor: cookies
Muchos sitios Web Ejemplo:
importantes usan cookies ❍ Susan accede Internet
siempre desde el mismo
Cuatro componentes: PC
1) Línea encabezado cookie ❍ Ella visita un sitio e-
en el mensaje respuesta commerce específico
HTTP por primera vez.
2) Línea de encabezado ❍ Cuando el requerimiento
cookie en requerimiento HTTP inicial llega al
HTTP sitio, éste crea un ID
3) Archivo cookie es único y crea una entrada
almacenado en la máquina en la base de datos para
del usuario y administrada ese ID.
por su navegador.
4) Base de datos en sitio
Web
2: Capa Aplicación 20
Cookies: conservando el “estado” (cont.)
cliente servidor
Cookie file Requerimiento http Servidor crea En
ba trad
Respuesta http + ID 1678 se a e
de n
ebay: 8734 Set-cookie: 1678 para usuario da
tos
o
Un semana más:
s
ce
ac
requerimiento http
Cookie file Acción
cookie: 1678
amazon: 1678 específica
ebay: 8734 respuesta http usual de la cookie
2: Capa Aplicación 21
Cookies (cont.) Al margen
Cookies y privacidad:
❒ Cookies permiten que
Qué pueden transportar
las cookies: el sitio aprenda mucho
sobre uno.
❒ autorización
❒ Podríamos proveer
❒ shopping carts
nombre y correo al
❒ sugerencias sitio.
❒ Estado de la sesión del ❒ Motores de búsqueda
usuario (Web e-mail) usan redirecciones y
cookies para aprender
aún más
❒ Compañías de avisos
obtienen información
de los sitios WEB
2: Capa Aplicación 22
Web caches (también servidores
proxy)
Objetivo: satisfacer el requerimiento del cliente sin
involucrar al servidor destino.
❒ Usuario configura el Servidor
browser: Acceso Web vía WEB
cache
HT Servidor
❒ browser envía todos los TP Proxy ue st
requerimientos HTTP al HT
req
u P req
cliente TP e st HTT po ns e
cache res
pon P res
se H TT
❍ Si objeto está en cache: st
ue
cache retorna objeto eq
TP r
o ns e
❍ Sino cache requiere los HT es
p
r
objetos desde el T TP
servidor Web, y retorna H
el objeto al cliente cliente
Servidor
Web
2: Capa Aplicación 23
Más sobre Web caching
❒ Cache actúan como Por qué Web caching?
clientes y ❒ Reduce tiempo de
respuesta de las peticiones
servidores del cliente.
❒ Típicamente el ❒ Reduce trafico en el enlace
cache está de acceso al ISP.
❒ Internet densa con caches
instalado por ISP
permite a proveedores de
(universidad, contenido “pobres” (no $$)
compañía, ISP entregar contenido en
forma efectiva.
residencial)
2: Capa Aplicación 24
Ejemplo de Cache
Servidores
Suposiciones web
❒ Tamaño promedio de objetos =
100,000 bits Internet
❒ Tasa de requerimientos pública
promedio desde browsers de
la institución al servidor WEB
= 15/sec
❒ Retardo desde el router 1.5 Mbps
institucional a cualquier Enlace se acceso
servidor web y su retorno = 2
Red
sec institucional
Consecuencias 10 Mbps LAN
❒ utilización de la LAN = 15%
❒ utilización del enlace de acceso =
100%
❒ Retardo total = retardo Internet Sin Cache
+ retardo de acceso + retardo institucional
LAN
= 2 sec + minutos + millisegundos
2: Capa Aplicación 25
Ejemplo de Cache (cont)
Servidores
Posible solución web
❒ Aumentar ancho de
Internet
banda del enlace a, por pública
ejemplo, 10 Mbps
Consecuencias
❒ Utilización de la LAN = 15% 10 Mbps
❒ Utilización del enlace de Enlace se acceso
acceso = 15% Red
❒ Retardo Total = Retardo institucional
10 Mbps LAN
Internet + retardo de acceso
+ retardo LAN
= 2 sec + msecs + msecs
❒ A menudo un upgrade caro. Sin cache
institucional
2: Capa Aplicación 26
Ejemplo de cache (cont)
Instalar un web Cache Servidores
❒ Supongamos tasa de éxito1 Web
(acierto) de 0.4
Internet
Consecuencias pública
❒ 40% de los requerimientos
serán satisfechos en forma casi
inmediata (~10 msec)
❒ 60% de los requerimientos
satisfechos por el servidor 1.5 Mbps
WEB Enlace de acceso
❒ Utilización del enlace de acceso
Red
es reducido al 60%, resultando institucional
en retardo despreciable 10 Mbps LAN
(digamos 10 msec)
❒ Retardo total = Retardo
Internet + retardo acceso +
retardo LAN = 0.6*(2.01) sec
+ 0.4*0.01 < 1.3 sec Cache
institucional
1Tasa de éxito: Fracción de los requerimientos satisfechos por la cache.
2: Capa Aplicación 27
Get Condicional
cache servidor
❒ Objetivo: no enviar
objetos si el cache tiene HTTP request msg
la versión actualizada If-modified-since:
object
<date>
❒ Cache: especifica la no
fecha de la copia en el HTTP response modificado
requerimiento HTTP HTTP/1.0
If-modified-since: 304 Not Modified
<date>
❒ servidor: responde sin el
objeto si la copia de la HTTP request msg
If-modified-since:
cache es la última. : <date> object
HTTP/1.0 304 Not modificado
Modified HTTP response
HTTP/1.0 200 OK
<data>
2: Capa Aplicación 28
Capítulo 2: Capa Aplicación
❒ 2.1 Principios de la ❒ 2.6 P2P Compartición
aplicaciones de red de archivos
❒ 2.2 Web y HTTP ❒ 2.7 Programación de
❒ 2.3 FTP Socket con TCP
❒ 2.4 Correo Electrónico ❒ 2.8 Programación de
❍ SMTP, POP3, IMAP
socket con UDP
❒ 2.5 DNS ❒ 2.9 Construcción de
un servidor WEB
2: Capa Aplicación 29