Análisis HTTP utilizando Wireshark

Análisis HTTP utilizando Wireshark

Que es http?

Primero es toda la forma completa de HTTP es el protocolo de transferencia de hipertexto. HTTP es un protocolo de capa de aplicación en ISO o modelo TCP/IP. Vea la imagen a continuación para encontrar HTTP que reside en la capa de aplicación.

HTTP es utilizado por la World Wide Web (w.w.w) y define cómo los mensajes están formateados y transmitidos por el navegador. Entonces, http define reules qué medidas se deben tomar cuando un navegador recibe el comando HTTP. Y también HTTP define reglas para transmitir el comando HTTP para obtener datos del servidor.

Por ejemplo, cuando ingresa una URL en el navegador (Internet Explorer, Chrome, Firefox, Safari, etc.) en realidad envía un comando HTTP al servidor.Y el servidor responde con el comando apropiado.

Métodos HTTP:

Hay algunos conjuntos de métodos para HTTP/1.1 (esta es la versión http)

Obtener, dirigir, publicar, poner, eliminar, conectarse, opción y rastro.

No iremos a los detalles de cada método, en su lugar, conoceremos los métodos que se ven con bastante frecuencia.Como

CONSEGUIR: Obtener la solicitud pregunta los datos del servidor web. Este es un método principal utilizado con la recuperación de documentos. Veremos un ejemplo práctico de este método.

CORREO: El método de publicación se utiliza cuando se requiere enviar algunos datos al servidor.

HTTP es WIRESAHARK:

Intentemos algo práctico para entender cómo funciona HTTP ?

Entonces, en este ejemplo, descargaremos "Alicia.txt ”(archivo de datos presente en el servidor) de "Gaia.CS.umbera.edu " servidor.

Setps:

  1. Abra la url http: // gaia.CS.umbera.edu/wireshark-labs/Alice.txt [conocemos la URL completa para descargar Alice.txt] en el navegador de computadora.
  2. Ahora vemos el archivo descargado en el navegador. Aquí está la captura de pantalla
  1. En paralelo hemos capturado los paquetes en Wireshark.

Intercambios de paquetes HTTP en Wireshark:

Antes de entrar en HTTP, debemos saber que HTTP usa el puerto 80 y TCP como protocolo de capa de transporte [Explicaremos TCP en otro tema Discusión].

Ahora veamos qué sucede en la red cuando colocamos esa URL y presionamos Entrar en el navegador.

Aquí está la captura de pantalla para

TCP 3-Way HandShake-> HTTP OK-> Datos TCP [Contenido de Alice.txt] ->

Http-ok

Ahora veamos qué hay dentro de los paquetes de HTTP y HTTP OK.

Nota: Explicaremos los intercambios de TCP en otro tema de discusión.

Http get:

Después de que TCP se realiza un apretón de manos de 3 vías [syn, syn+ack y ack] se realiza la solicitud de get http se envía al servidor y aquí están los campos importantes en el paquete.

1.Método de solicitud: Get ==> El paquete es una obtención de http .

2.Solicitar URI: /Wireshark-Labs /Alice.TXT ==> El cliente solicita el archivo Alice.txt presente debajo /wireshark-labs

3.Versión de solicitud: Http/1.1 ==> Es HTTP versión 1.1

4.Aceptar: texto/html, aplicación/xhtml+xml, image/jxr, */ * ==> Le dice al servidor sobre el tipo de archivo que [navegador del lado del cliente] puede aceptar. Aquí el cliente está esperando Alice.txt que es tipo de texto.

5.Aceptar el idioma: en-us ==> Estándar del idioma aceptado.

6.Agente de usuario: Mozilla/5.0 (Windows NT 10.0; Wow64; Trident/7.0; RV: 11.0) como gecko ==> Tipo de navegador del lado del cliente. Incluso si usamos Internet Explorer, pero lo vemos siempre/el tiempo máximo dice Mozilla

7.Aceptar en codificación: gzip, desinflar ==> Codificación aceptada en el lado del cliente.

8.Anfitrión: Gaia.CS.umbera.edu ==> Este es el nombre del servidor web donde el cliente está enviando HTTP Get Solicitud.

9.Conexión: Keep-Alive ==> La conexión controla si la conexión de red permanece abierta después de que finalice la transacción actual. El tipo de conexión es mantener vivo.

Aquí está la captura de pantalla para los campos de paquetes http-get

Http ok:

Después de los datos de TCP [Contenido de Alice.txt] se envía correctamente http ok se envía al cliente y aquí están los campos importantes en el paquete.
1. Versión de respuesta: Http/1.1 ==> Aquí el servidor también en HTTP versión 1.1
2.Código de estado: 200 ==> Código de estado enviado por servidor.
3.Frase de respuesta: DE ACUERDO ==> frase de respuesta enviada por servidor.

Entonces, desde 2 y 3 obtenemos 200 OK, lo que significa que la solicitud [http get] ha tenido éxito.

4.Fecha: Sol, 10 de febrero de 2019 06:24:19 GMT ==> Fecha actual, hora en GMT cuando el servidor recibió HTTP Get.
5.Servidor: Apache/2.4.6 (CentOS) OpenSSL/1.0.2K-FIPS PHP/5.4.16 mod_perl/2.0.10 perl/v5.dieciséis.3 ==> Versiones de detalles y configuraciones del servidor.
6.Última modificación: Sábado, 21 de agosto de 2004 14:21:11 GMT ==> Última fecha y hora modificadas para el archivo "Alice.TXT".
7.Etag: "2524a-3e22aba3a03c0" ==> El ETAG indica que el contenido no se cambia para ayudar al almacenamiento en caché y mejorar el rendimiento. O si el contenido ha cambiado, los ETAG son útiles para ayudar a evitar que las actualizaciones simultáneas de un recurso se sobrescriban entre sí.
8. Aceptación de rangos: bytes ==> Byte es la unidad utilizada en el servidor para el contenido.
9.Largancia de contenido: 152138 ==> Esta es la longitud total de Alice.txt en bytes.
10. Mantener viva: tiempo de espera = 5, max = 100 ==> Mantener los parámetros vivos.
11.Conexión: Mantener viva ==> Controla la conexión si la conexión de red permanece abierta después de que finalice la transacción actual. El tipo de conexión es mantener vivo.
12.Tipo de contenido: Texto sin formato; charset = utf-8 ==> El contenido [Alice.El tipo de txt] es texto y el estándar de charset es UTF-8.

Aquí está la captura de pantalla para diferentes campos del paquete HTTP OK.

Así que ahora sabemos qué sucede cuando solicitamos cualquier archivo que esté presente en el servidor web.

Conclusión:

HTTP es un protocolo de aplicación simple que usamos todos los días en nuestra vida. Pero no es seguro, por lo que se han implementado HTTPS. Que "s" significa seguro. Es por eso que el nombre de servidor web tan máximo comienza con HTTPS: // [WebsitEname]. Esto significa que toda la comunicación entre usted y el servidor están encriptados. Tendremos una discusión por separado sobre este https en el futuro.