6.5 Análisis de las interacciones Web

En esta sección vamos a analizar el protocolo HTTP usando la aplicación Wireshark. Para saber cómo utilizar esta utilidad véase el Apéndice F.

6.5.1 Análisis de una interacción Web básica

La interacción Web básica transfiere un objeto Web por primera vez desde un servidor Web hasta un cliente Web.

Taller 6.14:

  1. Ejecute Wireshark (recuerde, como root) y colóquelo en modo de captura a través del interface eth0.
  2. Ejecute un navegador Web (firefox, preferiblemente) y acceda al objeto Web (http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file1.html).
  3. Cuando el objeto Web haya sido mostrado por el navegador, detenga la captura de paquetes. Debería ver (al menos) dos paquetes HTTP, un GET y un OK.
Cuestión 6.1:
¿Qué versión del HTTP está usando su navegador? ¿Y el servidor?
Cuestión 6.2:
¿Qué lenguajes acepta el navegador?
Cuestión 6.3:
¿Cuál es la dirección IP del host que ejecuta el navegador? ¿Cuál es la dirección IP del host que ejecuta el servidor?
Cuestión 6.4:
¿Cuál fue el código de estado retornado por el servidor?
Cuestión 6.5:
¿Cuánto tiempo ha pasado desde que el GET fue emitido hasta que el OK fue recibido?
Cuestión 6.6:
¿Cuándo fue por última vez modificado el objeto que se está reclamando al servidor? ¿Está este fichero constantemente siendo modificado?
Cuestión 6.7:
¿Cuántos bytes de datos ocupa el objeto Web?
Cuestión 6.8:
¿Su navegador ha solicitado, además, un objeto llamado favicon.ico? ¿Qué contiene dicho objeto?

6.5.2 Análisis de una interación Web condicional

Los navegadores utilizan su caché para evitar la descarga de objetos Web cacheados y que están frescos (que son iguales a los que tiene el servidor). Para esto se utiliza el GET condicional.

Taller 6.15:
  1. Ejecute su navegador Web y asegúrese de que la caché de éste está vacía (En Mozilla Firefox: Edit -¿ Preferences -¿ Advanced -¿ Network -¿ Cache: Clear Now).
  2. Ejecute el packet sniffer.
  3. Acceda al objeto Web (http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file2.html). El browser debería mostrar un fichero HTML.
  4. Re-acceda al mismo objeto (pusle el botón de “Reload current page”).
  5. Detenga la captura de paquetes y use el filtro http.
Cuestión 6.9:
¿Qué cabecera HTTP identifica al GET condicional? ¿En qué GET (de los dos que hay en la lista de paquetes capturados) aparece dicha cabecera?
Cuestión 6.10:
¿Qué diferecia existe entre las dos respuestas que ha enviado el servidor?

6.5.3 Análisis de una interacción Web que transmite un objeto “largo”

El TCP del emisor fragmenta los mensajes largos. El receptor recibe un conjunto de paquetes, cada uno con un segmento diferente.

Taller 6.16:
  1. Ejecute su navegador Web y borre su caché.
  2. Ejecute el packet sniffer.
  3. Reclame el objeto Web http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file3.html que contiene la US Bill of Rights.
  4. Detenga la captura de paquetes y use el filtro http.
Cuestión 6.11:
¿Cuántos mensajes de petición HTTP ha generado el navegador Web?
Cuestión 6.12:
¿Cuántos objetos Web se han transmitido? ¿Cuántos segmentos TCP se han recibido?

6.5.4 Análisis de una interacción Web con objetos empotrados

Cuando accedemos a un objeto Web que a su vez referencia a otros objetos Web, el cliente se encarga de ir reclamando cada uno de ellos.

Taller 6.17:
  1. Ejecute su navegador Web y borre su caché.
  2. Ejecute el packet sniffer.
  3. Reclame el objeto Web http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file4.html que contiene un corto fichero HTML con dos imágenes.
  4. Detenga la captura de paquetes y use el filtro http.
Cuestión 6.13:
¿Cuántos mensajes de petición HTTP ha generado el navegador Web?
Cuestión 6.14:
¿Qué servidor Web ha servido cada imagen?
Cuestión 6.15:
¿Cuántos objetos Web se han transmitido?
Cuestión 6.16:
Especifique si los distintos objetos Web se han descargado en serie o en parelelo e indique por qué.