Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

Universidad Tecnológica de Panamá

Facultad De Ingeniería de Sistemas Computacionales


Licenciatura en Redes Informáticas

Materia:
Arquitectura de protocolos

Tema:
Laboratorio 9 HTTP

Facilitador:
Lydia Toppin

Estudiante:
Joseph Silva

Grupo:
11R132

Fecha:
13 de julio del 2023

I Semestre 2023
Laboratorio Protocolo HTTP

Fecha de entrega: 13 de julio de 2023.

Objetivo:

Exploraremos diversos aspectos del protocolo HTTP: la interacción básica GET/respuesta, formatos de mensajes HTTP,
recuperación de archivos HTML grandes, recuperación de archivos HTML con objetos incrustados y autenticación y
seguridad HTTP.

Instrucciones:

Antes de comenzar con estas prácticas de laboratorio, es posible que desee revisar la el capítulo 22 sobre World Wide
Web y HTTP del libro de texto.

Los invito a ver la presentación en power point del capítulo.

Los archivos

Ejecute los pasos a continuación para desarrollar el laboratorio.

1. La interacción básica HTTP GET/respuesta

Comencemos nuestra exploración de HTTP descargando un archivo HTML muy simple, uno que es muy corto y no contiene
objetos incrustados. Haz lo siguiente:

1. Inicie su navegador web.

2. Inicie el rastreador de paquetes Wireshark, como se describe en la práctica de laboratorio introductoria (pero no
comience todavía la captura de paquetes). Ingrese "http" (solo las letras, no las comillas) en la ventana de especificación
de filtro de visualización, de modo que solo los mensajes HTTP capturados se muestren más adelante en la ventana de
listado de paquetes. (Aquí solo nos interesa el protocolo HTTP y no queremos ver el desorden de todos los paquetes
capturados).

3. Espere un poco más de un minuto (veremos por qué en breve) y luego comience la captura de paquetes de Wireshark.

4. Ingrese lo siguiente a su navegador

http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html

Su navegador debe mostrar el archivo HTML muy simple de una línea.

5. Detenga la captura de paquetes de Wireshark.

Su ventana de Wireshark debería ser similar a la ventana que se muestra en la Figura 1. Si no puede ejecutar Wireshark
en una conexión de red en vivo, puede descargar un seguimiento de paquetes que se creó cuando se siguieron los pasos
anteriores.
Figura 1: Visualización de Wireshark después de que su navegador haya recuperado http://gaia.cs.umass.edu/wireshark-
labs/ HTTP-wireshark-file1.html

El ejemplo de la Figura 1 muestra en la ventana de listado de paquetes que se capturaron dos mensajes HTTP: el mensaje
GET (de su navegador al servidor web gaia.cs.umass.edu) y el mensaje de respuesta del servidor a su navegador. La
ventana de contenido del paquete muestra los detalles del mensaje seleccionado (en este caso, el mensaje HTTP OK, que
se resalta en la ventana de lista de paquetes). Recuerde que dado que el mensaje HTTP se transportó dentro de un
segmento TCP, que se transportó dentro de un datagrama IP, que se transportó dentro de una trama de Ethernet,
Wireshark también muestra la información del paquete de trama, Ethernet, IP y TCP. Queremos minimizar la cantidad de
datos que no son HTTP que se muestran (estamos interesados en HTTP aquí y estaremos investigando estos otros
protocolos en laboratorios posteriores), así que asegúrese de que las casillas en el extremo izquierdo de Frame, Ethernet,
IP y La información de TCP tiene un signo más o un triángulo que apunta hacia la derecha (lo que significa que hay
información oculta que no se muestra), y la línea HTTP tiene un signo menos o un triángulo que apunta hacia abajo (lo
que significa que se muestra toda la información sobre el mensaje HTTP) .

Al observar la información en los mensajes HTTP GET y de respuesta, responda las siguientes preguntas. Al responder las
siguientes preguntas, debe imprimir los mensajes GET y de respuesta (consulte el laboratorio introductorio de Wireshark
para obtener una explicación de cómo hacerlo) e indicar en qué parte del mensaje encontró la información que responde
a las siguientes preguntas. Cuando entregue su tarea, anote la salida para que quede claro en qué parte de la salida está
obteniendo la información para su respuesta (por ejemplo, para nuestras clases, les pedimos a los estudiantes que
marquen las copias en papel con un bolígrafo o anoten las copias electrónicas con texto en una fuente de color).
1. ¿Su navegador ejecuta HTTP versión 1?0 o 1.1? ¿Qué versión de HTTP está ejecutando el servidor?
El navegador y el servidor están ejecutando la versión 1.1

2. ¿Qué idiomas (si los hay) indica su navegador que puede aceptar en el servidor?
Estos son los lenguajes que acepta el navegador:

3. ¿Cuál es la dirección IP de su computadora? ¿Del servidor gaia.cs.umass.edu?


Dirección IP computadora: 192.168.0.104
Dirección IP servidor: 128.119.245.12

4. ¿Cuál es el código de estado devuelto por el servidor a su navegador?


Código 200: ok

5. ¿Cuándo se modificó por última vez en el servidor el archivo HTML que está recuperando?
Se modificó por última vez el 13 de julio del 2023 a las 5:59:01

6. ¿Cuántos bytes de contenido se devuelven a su navegador?


128 Bytes
7. Al inspeccionar los datos sin procesar en la ventana de contenido del paquete, ¿ve algún encabezado dentro de
los datos que no se muestra en la ventana de listado de paquetes? Si es así, nombre uno.
No veo ningún encabezado

En su respuesta a la pregunta 5 anterior, es posible que se haya sorprendido al descubrir que el documento que acaba de
recuperar se modificó por última vez un minuto antes de descargarlo. Esto se debe a que (para este archivo en particular),
el servidor gaia.cs.umass.edu está configurando la hora de la última modificación del archivo para que sea la hora actual,
y lo hace una vez por minuto. Así, si espera un minuto entre accesos, parecerá que el archivo ha sido modificado
recientemente, por lo que su navegador descargará una “nueva” copia del documento.

2. La interacción HTTP CONDICIONAL GET/respuesta

Recuerde de la Sección 2.2.5 del texto, que la mayoría de los navegadores web realizan el almacenamiento en caché de
objetos y, por lo tanto, realizan un GET condicional al recuperar un objeto HTTP. Antes de realizar los pasos a continuación,
asegúrese de que el caché de su navegador esté vacío. (Para hacer esto en Firefox, seleccione Herramientas->Borrar
historial reciente y marque la casilla Caché, o para Internet Explorer, seleccione Herramientas->Opciones de Internet-
>Eliminar archivo; estas acciones eliminarán los archivos en caché del caché de su navegador). Ahora haga el seguimiento:

• Inicie su navegador web y asegúrese de borrar la memoria caché de su navegador, como se explicó anteriormente.

• Inicie el rastreador de paquetes Wireshark

• Introduzca la siguiente URL en su navegador

http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html

Su navegador debe mostrar un archivo HTML muy simple de cinco líneas.

• Ingrese rápidamente la misma URL en su navegador nuevamente (o simplemente seleccione el botón Actualizar en su
navegador)

• Detenga la captura de paquetes de Wireshark e ingrese "http" en la ventana de especificación de filtro de visualización,
de modo que solo los mensajes HTTP capturados se muestren más adelante en la ventana de listado de paquetes.

• (Nota: si no puede ejecutar Wireshark en una conexión de red activa, puede usar el seguimiento de paquetes http-
ethereal-trace-2 para responder las siguientes preguntas; consulte la nota al pie 1. Este archivo de seguimiento se recopiló
mientras realizaba los pasos anteriores en una de las computadoras del autor).
Responde las siguientes preguntas:

8. Inspeccione el contenido de la primera solicitud HTTP GET de su navegador al servidor. ¿Ve una línea "IF-MODIFIED-
SINCE" en HTTP GET?
No, no se ve.

9. Inspeccione el contenido de la respuesta del servidor. ¿El servidor devolvió explícitamente el contenido del archivo?
¿Cómo puedes saberlo?
Sí, lo devolvió explícitamente. Lo podemos visualizar en el apartado “Line-based text data” y también en el campo File
data del protocolo http.

10. Ahora inspeccione el contenido de la segunda solicitud HTTP GET de su navegador al servidor. ¿Ve una línea "IF-
MODIFIED-SINCE:" en HTTP GET? Si es así, ¿qué información sigue al encabezado "IF-MODIFIED-SINCE:"?
Sí, e incluye la fecha y hora completa de la modificación.
11. ¿Cuál es el código de estado HTTP y la frase que devuelve el servidor en respuesta a este segundo HTTP GET? ¿El
servidor devolvió explícitamente el contenido del archivo? Explique.
EL servidor devuelve el código de estado 304 y la frase de estado “Not Modified”.
El código de estado HTTP es el 304 y la frase “Not Modified”. Es un código de estado HTTP para “use a local copy”
(usar copia local), que significa que la página será recibida desde el caché del visitante en lugar de ser recibida desde
el servidor web. Por tanto el servidor no devolvió los contenidos del fichero.

3. Recuperación de documentos largos

En nuestros ejemplos hasta ahora, los documentos recuperados han sido archivos HTML simples y cortos. A continuación,
veamos qué sucede cuando descargamos un archivo HTML largo. Haz lo siguiente:

• Inicie su navegador web y asegúrese de borrar la memoria caché de su navegador, como se explicó anteriormente.

• Inicie el rastreador de paquetes Wireshark

• Introduzca la siguiente URL en su navegador

http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html

Su navegador debe mostrar la Declaración de Derechos de los EE. UU. bastante larga.

• Detenga la captura de paquetes de Wireshark e ingrese "http" en la ventana de especificación de filtro de visualización,
para que solo se muestren los mensajes HTTP capturados.

• (Nota: si no puede ejecutar Wireshark en una conexión de red activa, puede usar el seguimiento de paquetes http-
ethereal-trace-3 para responder las siguientes preguntas; consulte la nota al pie 1. Este archivo de seguimiento se recopiló
mientras realizaba los pasos anteriores en una de las computadoras del autor).

El cuerpo de la entidad en la respuesta es el archivo HTML completo solicitado. En nuestro caso aquí, el archivo HTML es
bastante largo, y con 4500 bytes es demasiado grande para caber en un paquete TCP. El único mensaje de respuesta HTTP
es por lo tanto dividido en varias partes por TCP, con cada parte contenida dentro de un segmento TCP separado (vea la
Figura 1.24 en el texto). En versiones recientes de Wireshark, Wireshark indica cada segmento TCP como un paquete
separado, y el hecho de que la única respuesta HTTP se fragmentó en varios paquetes TCP se indica mediante el "segmento
TCP de una PDU reensamblada" en la columna Información de la pantalla de Wireshark. . Las versiones anteriores de
Wireshark usaban la frase "Continuación" para indicar que todo el contenido de un mensaje HTTP se dividió en varios
segmentos TCP. ¡Hacemos hincapié aquí en que no hay un mensaje de "Continuación" en HTTP!
Responde las siguientes preguntas:

12. ¿Cuántos mensajes de solicitud HTTP GET envió su navegador? ¿Qué número de paquete en el seguimiento contiene
el mensaje GET para la factura o los derechos?
Sólo uno.

13. ¿Qué número de paquete en el seguimiento contiene el código de estado y la frase asociados con la respuesta a la
solicitud HTTP GET?
No sale..

14. ¿Cuál es el código de estado y la frase en la respuesta?


Código de estado 200 y frase “OK”

15. ¿Cuántos segmentos TCP que contienen datos se necesitaron para llevar la respuesta HTTP única y el texto de la
Declaración de derechos?
Dividiendo el tamaño total de los datos (4500 bytes) entre el tamaño máximo de los segmentos TCP (1460 bytes),
obtenemos el número aproximado de segmentos TCP necesarios:

4500 bytes / 1460 bytes = 3.08


De acuerdo con este cálculo, se necesitarían al menos 4 segmentos TCP para transportar los 4500 bytes de datos de
la Declaración de Derechos

4. Documentos HTML con objetos incrustados

Ahora que hemos visto cómo Wireshark muestra el tráfico de paquetes capturados para archivos HTML grandes, podemos
ver qué sucede cuando su navegador descarga un archivo con objetos incrustados, es decir, un archivo que incluye otros
objetos (en el ejemplo a continuación, archivos de imagen ) que se almacenan en otro(s) servidor(es).

Haz lo siguiente:

• Inicie su navegador web y asegúrese de borrar la memoria caché de su navegador, como se explicó anteriormente.

• Inicie el rastreador de paquetes Wireshark

• Introduzca la siguiente URL en su navegador

http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html

Su navegador debería mostrar un archivo HTML corto con dos imágenes. Se hace referencia a estas dos imágenes en el
archivo HTML base. Es decir, las imágenes en sí mismas no están contenidas en el HTML; en cambio, las URL de las
imágenes están contenidas en el archivo HTML descargado. Como se explica en el libro de texto, su navegador deberá
recuperar estos logotipos de los sitios web indicados. El logotipo de nuestra editorial se obtiene del sitio web
gaia.cs.umass.edu. La imagen de la portada de nuestra 5ta edición (una de nuestras portadas favoritas) está almacenada
en el servidor caite.cs.umass.edu. (Estos son dos servidores web diferentes dentro de cs.umass.edu).

• Detenga la captura de paquetes de Wireshark e ingrese "http" en la ventana de especificación de filtro de visualización,
para que solo se muestren los mensajes HTTP capturados.

• (Nota: si no puede ejecutar Wireshark en una conexión de red en vivo, puede usar el seguimiento de paquetes http-
ethereal-trace-4 para responder las preguntas a continuación; consulte la nota al pie 1. Este archivo de seguimiento se
recopiló mientras realizaba los pasos anteriores en una de las computadoras del autor).
Responde las siguientes preguntas:

16. ¿Cuántos mensajes de solicitud HTTP GET envió su navegador? ¿A qué direcciones de Internet se enviaron estas
solicitudes GET?
Se enviaron 3 solicitudes GET.

1. 128.119.245.12
2. 128.119.245.12
3. 178.79.137.164

17. ¿Puede decir si su navegador descargó las dos imágenes en serie o si se descargaron de los dos sitios web en
paralelo? Explique.
Las imágenes de descararon en serie debido a que se hizo la petición de la primera imagen, se recibió la respuesta y
después se envió la petición de la otra imagen.

5 Autenticación HTTP

Finalmente, intentemos visitar un sitio web que esté protegido con contraseña y examinemos la secuencia de mensajes
HTTP intercambiados por dicho sitio. la dirección URL

http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html está protegido por contraseña. El


nombre de usuario es "wireshark-students" (sin las comillas) y la contraseña es " " (nuevamente, sin las comillas). Así que
accedamos a este sitio "seguro" protegido por contraseña. Haz lo siguiente:

• Asegúrese de borrar la memoria caché de su navegador, como se explicó anteriormente, y cierre su navegador. Luego,
inicie su navegador

• Inicie el rastreador de paquetes Wireshark

• Introduzca la siguiente URL en su navegador

http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html

Escriba el nombre de usuario y la contraseña solicitados en el cuadro emergente.

• Detenga la captura de paquetes de Wireshark e ingrese "http" en la ventana de especificación de filtro de visualización,
de modo que solo los mensajes HTTP capturados se muestren más adelante en la ventana de listado de paquetes.

• (Nota: si no puede ejecutar Wireshark en una conexión de red en vivo, puede usar el seguimiento de paquetes http-
ethereal-trace-5 para responder las preguntas a continuación; consulte la nota al pie 2. Este archivo de seguimiento se
recopiló mientras realizaba los pasos anteriores en una de las computadoras del autor).
Ahora examinemos la salida de Wireshark. Es posible que desee leer primero sobre la autenticación HTTP revisando el
material fácil de leer en "Marco de autenticación de acceso HTTP" en
http://frontier.userland.com/stories/storyReader$2159

Responde las siguientes preguntas:

18. ¿Cuál es la respuesta del servidor (código de estado y frase) en respuesta al mensaje HTTP GET inicial de su
navegador?
Código de estado: 401
Frase: Unauthorized

19. Cuando su navegador envía el mensaje HTTP GET por segunda vez, ¿qué campo nuevo se incluye en el mensaje
HTTP GET?

El campo nuevo que se incluye es el Autorization.

El nombre de usuario (wireshark-students) y la contraseña (red) que ingresó están codificados en la cadena de caracteres
(d2lyZXNoYXJrLXN0dWRlbnRzOm5ldHdvcms=) a continuación

el encabezado "Autorización: Básico" en el mensaje HTTP GET del cliente. Si bien puede parecer que su nombre de usuario
y contraseña están encriptados, simplemente están codificados en un formato conocido como formato Base64. ¡El
nombre de usuario y la contraseña no están encriptados! Para ver esto, vaya a http://www.motobit.com/util/base64-
decoder-encoder.asp e ingrese la cadena codificada en base64 d2lyZXNoYXJrLXN0dWRlbnRz y decodifique. ¡Voila! ¡Ha
traducido de la codificación Base64 a la codificación ASCII y, por lo tanto, debería ver su nombre de usuario! Para ver la
contraseña, ingrese el resto de la cadena Om5ldHdvcms= y presione decodificar. Dado que cualquiera puede descargar
una herramienta como Wireshark y olfatear paquetes (no solo los suyos) que pasan por su adaptador de red, y cualquiera
puede traducir de Base64 a ASCII (¡usted lo acaba de hacer!), debe quedarle claro que las contraseñas simples en WWW
los sitios no son seguros a menos que se tomen medidas adicionales.
¡No temáis! Como veremos en el Capítulo 8, hay formas de hacer que el acceso a la WWW sea más seguro. Sin embargo,
claramente necesitaremos algo que vaya más allá del marco básico de autenticación HTTP.

Servidor proxy

Sin embargo, para usar el servidor proxy, el cliente debe estar configurado para acceder al proxy en lugar del servidor de
destino.

Tenga en cuenta que el servidor proxy actúa como servidor y como cliente. Cuando recibe una solicitud de un cliente para
la que tiene una respuesta, actúa como un servidor y envía la respuesta al cliente. Cuando recibe una solicitud de un
cliente para la que no tiene respuesta, primero actúa como un servidor y envía una solicitud al servidor de destino. Cuando
se ha recibido la respuesta, vuelve a actuar como servidor y envía la respuesta al cliente.

Informe:

El informe debe ser enviado a más tardar el 13 de julio del 2023 a las 11:55 pm.

You might also like