Experimento Wireshark-HTTP

Interacción básica HTTP GET / respuesta

Procedimiento experimental

Comenzamos a explorar HTTP descargando un archivo HTML muy simple que es muy corto y no contiene objetos incrustados. Haz lo siguiente:

  1. Inicia tu navegador.
  2. Inicie el sniffer de paquetes de Wireshark, como se describe en el Experimento de inicio de Wireshark (la captura de paquetes aún no se ha iniciado). En la ventana de especificación del filtro de visualización, ingrese "http" (solo letras, sin comillas), para que solo los mensajes HTTP se capturen en la ventana de la lista de agrupación más adelante. (Solo estamos interesados ​​en el protocolo HTTP y no queremos ver todos los demás paquetes desordenados).
  3. Espere un momento (pronto comprenderemos por qué) y luego inicie la captura de paquetes de Wireshark.


4. Ingrese el siguiente contenido en el navegador http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.htmlSu navegador debe mostrar un archivo HTML de una sola línea muy simple.
5. Detenga la captura de paquetes de Wireshark.


Se muestran dos mensajes HTTP capturados en la ventana de la lista de grupos: mensaje GET (enviado desde su navegador al servidor web de gaia.cs.umass.edu) y mensaje de respuesta del servidor al navegador. La ventana de contenido del grupo muestra información detallada sobre el mensaje seleccionado (en este caso, un mensaje HTTP OK). Recuerde que debido a que el mensaje HTTP se carga en el segmento TCP, es el segmento encapsulado en paquetes IP y luego encapsulado en el marco de Ethernet y el marco, de modo que la interfaz muestra el marco, Ethernet, IP, TCP Información del paquete e información del mensaje HTTP. Queremos minimizar la visualización de datos que no son HTTP, así que asegúrese de que la información de la trama, Ethernet, IP y TCP esté oculta.

Pregunta respuesta

Responda las siguientes preguntas visualizando la información en HTTP GET y los mensajes de respuesta. Al responder las siguientes preguntas, debe indicar en qué parte del mensaje encontró la información para responder las siguientes preguntas. Cuando entregue su tarea, indique el resultado, mostrando dónde indicó su respuesta.

  1. ¿Su navegador ejecuta HTTP versión 1.0 o 1.1? ¿Qué versión de HTTP ejecuta el servidor?

Servidor:

Navegador (para enviar una solicitud GET): Esto

muestra que tanto el navegador como el host usan HTTP versión 1.1.
2. ¿Qué idioma (si corresponde) aceptará su navegador del servidor receptor?


Después de verificar la información, el idioma recibido es el chino simplificado.

  1. ¿Cuál es la dirección IP de su computadora? ¿Qué pasa con la dirección del servidor gaia.cs.umass.edu?


Mi computadora: 192.168.67.249
Servidor: 128.119.245.12
4. ¿Cuál es el código de estado que el servidor devuelve al navegador?


Al principio no presté atención y devolví 304, indicando que el caché anterior todavía es utilizable. Parece que es porque actualicé la página. Vuelva a capturar el paquete y devuelva 200 OK para indicar que la solicitud fue exitosa y que la información está en el mensaje devuelto.

  1. ¿Cuándo fue la última modificación del archivo HTML en el servidor?


La última modificación fue el martes 21 de abril de 2020, 5:59:02.
6. ¿Cuántos bytes de contenido devuelve el servidor a su navegador?


Se devolvieron 128 bytes.
7. Al verificar los datos originales en la ventana de contenido del paquete, ¿ve algún encabezado de protocolo que no se muestre en la ventana de la lista de paquetes? En caso afirmativo, dé un ejemplo.



Después de verificar la información, "favicon.ico" es un ícono, un ícono favorito y una etiqueta de navegador. El navegador puede solicitar automáticamente este ícono en el directorio raíz del sitio web. Si el sitio web de destino no tiene este ícono, devolverá 404. Esta información es interferencia y puede ignorarse directamente.

Condición HTTP Interacción de obtención / respuesta

Procedimiento experimental

La mayoría de los navegadores web utilizan el almacenamiento en caché de objetos para realizar GET condicional al recuperar objetos HTTP. Antes de realizar los siguientes pasos, asegúrese de que la memoria caché de su navegador esté vacía. Ahora siga estos pasos:

  1. Inicie su navegador y asegúrese de que la memoria caché de su navegador esté limpia, como se describió anteriormente.
  2. Inicie el sniffer de paquetes Wireshark.


3. Ingrese la siguiente URL http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html en su navegador. Su navegador debe mostrar un archivo HTML de cinco líneas muy simple.


4. Ingrese rápidamente la misma URL en el navegador nuevamente (o simplemente haga clic en el botón Actualizar en el navegador).
5. Detenga la captura de paquetes de Wireshark e ingrese "http" en la ventana de especificación de filtro de pantalla para capturar solo mensajes HTTP y mostrarlos en la ventana de lista de paquetes.


El paquete que agarré tiene alguna otra interferencia y se ignora directamente.

Pregunta respuesta

  1. Verifique el contenido de la primera solicitud HTTP GET de su navegador al servidor. ¿Viste "SI-MODIFICADO-DESDE" en HTTP GET?

Hojeé y no encontré nada.
2. Verifique el contenido de la respuesta del servidor. ¿El servidor devuelve explícitamente el contenido del archivo? Como lo sabes


Sí, se devuelve un código de marcado HTML, incluido el texto de la página web.
3. Ahora, verifique el contenido de la segunda solicitud HTTP GET. ¿Viste "SI-MODIFICADO-DESDE:" en HTTP GET? Si es así, ¿qué información se incluye después del encabezado "IF-MODIFIED-SINCE:"?


Como puede ver, contiene información por un período de tiempo que es consistente con el último tiempo de modificación de la página.

Comprobé la información y conocí el significado de esta etiqueta.

If-Modified-Since es una etiqueta de encabezado de solicitud HTTP estándar, cuando se envía una solicitud HTTP, el último tiempo de modificación de la página en caché del lado del navegador se envía al servidor, y el servidor tomará este tiempo y el último tiempo de modificación del archivo real en el servidor. Comparar
Si el tiempo es constante, devuelva el código de estado HTTP 304 (no devuelva el contenido del archivo), después de recibir el cliente, mostrará directamente el archivo de caché local en el navegador.
Si el tiempo es inconsistente, se devolverá el código de estado HTTP 200 y el nuevo contenido del archivo. Después de que el cliente lo reciba, descartará el archivo anterior, almacenará en caché el nuevo archivo y lo mostrará en el navegador.

  1. Para el segundo HTTP GET, ¿cuáles son los códigos de estado HTTP y las frases respondidas desde el servidor? ¿El servidor devuelve explícitamente el contenido del archivo? Por favor explique


¿No es este el problema que acabo de encontrar? Adjunte la información:

Si el cliente envía una solicitud GET condicional y la solicitud ha sido permitida, pero el contenido del documento (desde el último acceso o de acuerdo con las condiciones de la solicitud) no ha cambiado, el servidor debe devolver este código de estado 304. La expresión simple es: el servidor ha realizado GET, pero el archivo no ha cambiado.

En otras palabras, el caché actual de esta página todavía se guarda y el servidor no se ha modificado, por lo que este caché se puede usar y no hay necesidad de enviarlo nuevamente.

Recuperar archivos largos

Procedimiento experimental

En nuestro ejemplo hasta ahora, los documentos recuperados son archivos HTML cortos. A continuación, echemos un vistazo a lo que sucede cuando descargamos un archivo HTML largo. Siga los pasos a continuación:

  1. Inicie su navegador y asegúrese de que su caché esté limpia, como se describió anteriormente.
  2. Iniciar el sniffer de paquetes de Wireshark


3. Ingrese la siguiente URL http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html en su navegador. Su navegador debe mostrar un archivo bastante largo.


4. Detenga la captura de paquetes de Wireshark e ingrese "http" en la ventana de especificación de filtro de pantalla para mostrar solo los mensajes HTTP capturados.


En la ventana de la lista de paquetes, debería ver su mensaje HTTP GET, seguido de la respuesta TCP de varios paquetes a su solicitud HTTP GET. Esta respuesta de múltiples paquetes merece una pequeña explicación. El mensaje de respuesta HTTP consta de una línea de estado, seguida de una línea de encabezado, seguida de una línea en blanco, seguida del cuerpo de la entidad. En nuestro caso de HTTP GET, el cuerpo de la entidad en la respuesta es el archivo HTML de toda la solicitud. En nuestro ejemplo, el archivo HTML es bastante largo, 4500 bytes son demasiado grandes y no se puede acomodar un paquete TCP. Por lo tanto, un solo mensaje de respuesta HTTP está dividido en varias partes por TCP, y cada parte está contenida en un segmento TCP separado.

Pregunta respuesta

  1. ¿Cuántos mensajes de solicitud HTTP GET envía su navegador? ¿Qué paquete contiene el mensaje del archivo?


Se envió un mensaje de solicitud.

Este paquete contiene la información del archivo.
2. ¿Qué paquete de datos contiene el código de estado y la frase en respuesta a la solicitud HTTP GET?


3. ¿Cuáles son los códigos de estado y las frases en la respuesta?

200 OK significa que la solicitud fue exitosa y la información está en el mensaje devuelto.
4. ¿Cuántos segmentos TCP que contienen datos son necesarios para ejecutar una sola respuesta HTTP y texto?

Se requieren cinco segmentos TCP que contengan datos para la inspección visual.

Documento HTML con objetos incrustados

Ahora que hemos visto cómo Wireshark muestra el tráfico de paquetes de grandes archivos HTML capturados, podemos ver qué sucede cuando el navegador descarga el archivo usando objetos incrustados.

Procedimiento experimental

  1. Inicia tu navegador.
  2. Inicie el sniffer de paquetes Wireshark.


3. Ingrese la siguiente URL http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html en su navegador. Su navegador debe mostrar un breve archivo HTML que contenga dos imágenes. Estas dos imágenes están referenciadas en el archivo HTML básico. Es decir, la imagen en sí no está incluida en el archivo HTML; en cambio, la URL de la imagen está incluida en el archivo HTML descargado. Su navegador tendrá que recuperar estos íconos del sitio web designado.


Detenga la captura de paquetes de Wireshark e ingrese "http" en la ventana de especificación del filtro de visualización para mostrar solo los mensajes HTTP capturados.

Pregunta respuesta

  1. ¿Cuántos mensajes de solicitud HTTP GET envió su navegador? ¿A qué dirección IP se envían estas solicitudes GET?




Se enviaron tres mensajes de solicitud HTTP GET, y estas solicitudes GET se enviaron a 128.119.245.12.
2. ¿El navegador descarga dos imágenes en serie o en paralelo desde dos sitios web? Por favor explique


Debe ser una descarga en serie, porque de acuerdo con el paquete capturado, descargue el segundo después de descargar la primera imagen. Pero esto no es en mi opinión, porque la descarga paralela es la forma más eficiente, por lo que sospecho que hay interferencia.

Desde el punto de vista de eliminar los paquetes de interferencia, debe ser una descarga paralela.

Autenticación HTTP

Procedimiento experimental

Finalmente, intentamos acceder al sitio web protegido por contraseña y verificar la secuencia del intercambio de mensajes HTTP del sitio web. La URL http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html está protegida con contraseña. Haz lo siguiente:

  1. Asegúrese de que la memoria caché del navegador esté limpia, como se describió anteriormente, luego cierre su navegador y luego inicie el navegador
  2. Inicie el sniffer de paquetes Wireshark.


3. Ingrese la siguiente URL http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wiresharkfile5.html en el navegador y escriba el nombre de usuario y la contraseña solicitados en el cuadro emergente.
4. Detenga la captura de paquetes de Wireshark e ingrese "http" en la ventana de especificación de filtro de pantalla para mostrar solo los mensajes HTTP capturados.

Como solo puedo atrapar 404, usaré los paquetes ya preparados.

Pregunta respuesta

  1. ¿Cuál es la respuesta del servidor (código de estado y frase) para el mensaje HTTP GET inicial de su navegador?

401 Se requiere autorización, el código de estado indica que el usuario no tiene derechos de acceso y necesita ser autenticado.
2. Cuando su navegador envía un mensaje HTTP GET por segunda vez, ¿qué campos nuevos se incluyen en el mensaje HTTP GET?



Hay más campos de Autorización y Credenciales, estos dos campos deben enviarse al nombre de usuario y contraseña de la página web.

Referencias

"Método de arriba hacia abajo de la red informática" [EE. UU.] James F. Kurose, Keith W. Ross, traducido por Chen Ming, Favicon.ico, Machinery Industry Press,
procesando
la solicitud Etiqueta de encabezado de solicitud HTTP If-Modified-Since
304 status code
401 Mal

Supongo que te gusta

Origin www.cnblogs.com/linfangnan/p/12749143.html
Recomendado
Clasificación