Análise HTTP usando Wireshark

Análise HTTP usando Wireshark

O que é http?

Primeiro é toda a forma completa de HTTP é o protocolo de transferência de hipertexto. HTTP é um protocolo de camada de aplicativo no modelo ISO ou TCP/IP. Veja a figura abaixo para descobrir o HTTP, que reside na camada de aplicação.

HTTP é usado pela World Wide Web (W.c.w) e define como as mensagens são formatadas e transmitidas pelo navegador. Portanto, o HTTP define reules que ação deve ser tomada quando um navegador recebe o comando http. E também o HTTP define regras para transmitir o comando http para obter dados do servidor.

Por exemplo, quando você entra em um URL no navegador (Internet Explorer, Chrome, Firefox, Safari etc), ele realmente envia um comando http para servidor.E o servidor responde com o comando apropado.

Métodos HTTP:

Existem algum conjunto de métodos para http/1.1 (esta é a versão http)

Pegue, chefie, poste, coloque, exclua, conecte, opção e rastreio.

Não iremos em detalhes de cada método, em vez disso, conheceremos os métodos que são vistos com bastante frequência.Como

PEGAR: Obtenha solicitação solicita dados do servidor web. Este é um método principal usado para recuperar documentos. Veremos um exemplo prático deste método.

PUBLICAR: O método de postagem é usado quando é necessário enviar alguns dados para o servidor.

HTTP é WireSahark:

Vamos tentar algo prático para entender como o HTTP funciona ?

Então, neste exemplo, vamos baixar “Alice.txt ”(arquivo de dados presente no servidor) de “Gaia.cs.umass.edu ” servidor.

Setps:

  1. Abra o URL http: // gaia.cs.umass.Edu/Wireshark-Labs/Alice.txt [conhecemos o URL completo para baixar Alice.txt] no navegador de computador.
  2. Agora vemos o arquivo baixado no navegador. Aqui está a captura de tela
  1. Paralelamente, capturamos os pacotes no Wireshark.

Trocas de pacotes HTTP no Wireshark:

Antes de entrarmos no HTTP, devemos saber que o HTTP usa a porta 80 e o TCP como protocolo de camada de transporte [explicaremos o TCP em outra discussão em tópico].

Agora vamos ver o que acontece na rede quando colocamos esse URL e pressionamos Enter no navegador.

Aqui está a captura de tela para

TCP Handshake de 3 vias-> http ok-> dados TCP [Conteúdo de Alice.txt] ->

Http-ok

Agora vamos ver o que está lá dentro de http get e http ok pacotes.

Nota: Vamos explicar as trocas de TCP em outra discussão de tópico.

Http get:

Depois que o TCP 3-Way Handshake [syn, os pacotes syn+ack e ack] é feito http get solicitação é enviada para o servidor e aqui estão os campos importantes no pacote.

1.Método de solicitação: Get ==> O pacote é um http obtido .

2.Solicite Uri: /Wireshark-Labs /Alice.TXT ==> O cliente está pedindo alice de arquivo.txt presente em /wireshark-labs

3.Versão de solicitação: Http/1.1 ==> é http versão 1.1

4.Aceitar: texto/html, aplicativo/xhtml+xml, imagem/jxr, */ * ==> Informa ao servidor sobre o tipo de arquivo [navegador lateral do cliente] pode aceitar. Aqui o cliente está esperando Alice.txt que é o tipo de texto.

5.Aceitar-Language: en-us ==> Padrão de idioma aceito.

6.Agente de usuário: Mozilla/5.0 (Windows NT 10.0; Wow64; Trident/7.0; RV: 11.0) como Gecko ==> Tipo de navegador lateral do cliente. Mesmo se usamos o Internet Explorer, mas o vemos sempre/tempo máximo diz Mozilla

7.Aceitar o codificação: gzip, deflate ==> codificação aceita no lado do cliente.

8.Hospedar: Gaia.cs.umass.Edu ==> Este é o nome do servidor da web em que o cliente está enviando solicitação http.

9.Conexão: Keep-alive ==> A conexão controla se a conexão de rede permanece aberta após o acabamento da transação atual. O tipo de conexão está mantendo vivo.

Aqui está a captura de tela para campos de pacotes http-get

Http ok:

Após os dados do TCP [conteúdo de Alice.txt] é enviado com sucesso http ok é enviado ao cliente e aqui estão os campos importantes no pacote.
1. Versão de resposta: Http/1.1 ==> Aqui o servidor também no http versão 1.1
2.Código de status: 200 ==> Código de status enviado pelo servidor.
3.Frase de resposta: OK ==> frase de resposta enviada pelo servidor.

Então, de 2 e 3, temos 200 ok, o que significa que a solicitação [http recebe] foi bem -sucedida.

4.Data: Sun, 10 de fevereiro de 2019 06:24:19 GMT ==> Data atual, hora no GMT quando o http recebe foi recebido pelo servidor.
5.Servidor: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips php/5.4.16 mod_perl/2.0.10 Perl/V5.16.3 ==> Detalhes do servidor e versões de configurações.
6.Última modificação: Sáb, 21 de agosto de 2004 14:21:11 GMT ==> Última data e hora modificadas para o arquivo “Alice.TXT".
7.ETAG: “2524A-3E22ABA3A03C0” ==> O ETAG indica que o conteúdo não é alterado para ajudar no cache e melhorar o desempenho. Ou se o conteúdo foi alterado, o ETAGS é útil para ajudar a evitar atualizações simultâneas de um recurso de se substituir.
8. Ranges de aceitação: bytes ==> Byte é a unidade usada no servidor para conteúdo.
9.Comprimento do conteúdo: 152138 ==> Este é o comprimento total da Alice.txt em bytes.
10. Mantenha vivo: Timeout = 5, max = 100 ==> Manter parâmetros vivos.
11.Conexão: Mantenha vivo ==> A conexão controla se a conexão de rede permanece aberta após o acabamento da transação atual. O tipo de conexão está mantendo vivo.
12.Tipo de conteúdo: texto/simples; charset = utf-8 ==> O conteúdo [Alice.txt] tipo é texto e o padrão de charset é UTF-8.

Aqui está a captura de tela para diferentes campos de pacote http ok.

Então agora sabemos o que acontece quando solicitamos qualquer arquivo que esteja presente no servidor da web.

Conclusão:

HTTP é um simples protocolo de aplicativo que usamos todos os dias em nossa vida. Mas não é seguro, então https foi implementado. Que "S" significa seguro. É por isso que você é o nome do servidor da web tão máximo, inicia com https: // [Webename]. Isso significa que toda a comunicação entre você e o servidor é criptografada. Teremos discussões separadas sobre este HTTPS no futuro.