Analisi HTTP usando WireShark

Analisi HTTP usando WireShark

Cos'è http?

La prima è tutta la forma completa di HTTP è il protocollo di trasferimento ipertestuale. HTTP è un protocollo di livello dell'applicazione nel modello ISO o TCP/IP. Vedi sotto l'immagine per scoprire HTTP che risiede nel livello dell'applicazione.

HTTP è utilizzato dal World Wide Web (W.w.w) e definisce come i messaggi vengono formattati e trasmessi dal browser. Quindi http definisce reupe quale azione dovrebbe essere intrapresa quando un browser riceve il comando http. E anche HTTP definisce le regole per la trasmissione del comando HTTP per ottenere dati dal server.

Ad esempio, quando si inserisce un URL nel browser (Internet Explorer, Chrome, Firefox, Safari ecc.) In realtà invia un comando HTTP al server.E il server risponde con il comando appropriato.

Metodi HTTP:

Esistono alcuni metodi per http/1.1 (questa è la versione HTTP)

Ottieni, testa, post, put, elimina, connettiti, opzione e traccia.

Non andremo nei dettagli di ogni metodo invece sapremo a conoscenza dei metodi che si vedono abbastanza spesso.Ad esempio

OTTENERE: Ottieni la richiesta chiede i dati dal server Web. Questo è un metodo principale utilizzato per il retrior del documento. Vedremo un esempio pratico di questo metodo.

INVIARE: Il metodo post viene utilizzato quando è necessario inviare alcuni dati al server.

HTTP è WHIRASHARK:

Proviamo qualcosa di pratico per capire come funziona HTTP ?

Quindi in questo esempio scaricheremo “Alice.txt ”(file di dati presente nel server) da "Gaia.cs.UMass.edu " server.

Setps:

  1. Apri l'URL http: // gaia.cs.UMass.Edu/Wireshark-Labs/Alice.txt [Conosciamo l'intero URL per il download di Alice.txt] nel browser del computer.
  2. Ora vediamo il file scaricato nel browser. Ecco lo screenshot
  1. In parallelo abbiamo catturato i pacchetti in Wireshark.

Scambi di pacchetti HTTP in Wireshark:

Prima di entrare in HTTP dovremmo sapere che HTTP utilizza la porta 80 e il TCP come protocollo di livello di trasporto [spiegheremo TCP in un'altra discussione sull'argomento].

Ora vediamo cosa succede in rete quando mettiamo quell'URL e premi Invio nel browser.

Ecco lo screenshot per

TCP Handshake a 3 vie-> http ok-> dati TCP [contenuto di Alice.txt] ->

Http-ok

Ora vediamo cosa c'è all'interno di http get e http ok pacchetti.

Nota: spiegheremo gli scambi di TCP in un'altra discussione sull'argomento.

Http get:

Dopo la stretta di mano a 3 vie TCP [i pacchetti SYN, SYN+ACK e ACK] vengono eseguiti HTTP Get Richiesta viene inviato al server e qui ci sono i campi importanti nel pacchetto.

1.Metodo di richiesta: Get ==> Il pacchetto è un HTTP GET .

2.Richiedi URI: /Wireshark-Labs /Alice.TXT ==> Il client chiede al file Alice.txt presente sotto /wireshark-labs

3.Versione di richiesta: Http/1.1 ==> è HTTP versione 1.1

4.Accetta: text/html, applicazione/xhtml+xml, immagine/jxr, */ * ==> Racconta a server il tipo di file IT [browser lato client] può accettare. Qui il cliente si aspetta Alice.txt che è tipo di testo.

5.Accettazione: en-us ==> Standard linguistico accettato.

6.Utente-agente: Mozilla/5.0 (Windows NT 10.0; Wow64; Trident/7.0; RV: 11.0) come gecko ==> Tipo di browser lato client. Anche se abbiamo usato Internet Explorer ma lo vediamo sempre/Maximum Time dice Mozilla

7.Accettazione: gzip, deflate ==> codifica accettata nel lato client.

8.Ospite: Gaia.cs.UMass.Edu ==> Questo è il nome del server Web in cui il client sta inviando una richiesta HTTP Get.

9.Connessione: Keep-alive ==> La connessione controlla se la connessione di rete rimane aperta al termine della transazione corrente. Il tipo di connessione è mantenersi in vita.

Ecco lo screenshot per i campi di pacchetto HTTP-get

Http ok:

Dopo i dati TCP [contenuto di Alice.txt] viene inviato correttamente http ok viene inviato al client ed ecco i campi importanti nel pacchetto.
1. Versione di risposta: Http/1.1 ==> Qui il server anche nella versione 1 HTTP.1
2.Codice di stato: 200 ==> Codice di stato inviato dal server.
3.Frase di risposta: OK ==> frase di risposta inviata dal server.

Quindi da 2 e 3 otteniamo 200 ok, il che significa che la richiesta [HTTP GET] è riuscita.

4.Data: Sun, 10 febbraio 2019 06:24:19 GMT ==> Data corrente, ora in GMT quando HTTP GET è stato ricevuto dal server.
5.Server: Apache/2.4.6 (centOS) OpenSSL/1.0.2k-fips PHP/5.4.16 mod_perl/2.0.10 Perl/V5.16.3 ==> Versioni di dettagli e configurazioni del server.
6.Ultima modifica: Sab, 21 agosto 2004 14:21:11 GMT ==> Ultima data e ora modificata per il file “Alice.TXT".
7.Etag: “2524a-3e22aba3a03c0” ==> L'etag indica che il contenuto non viene modificato per aiutare la memorizzazione nella cache e migliorare le prestazioni. O se il contenuto è cambiato, gli eTag sono utili per aiutare a prevenire gli aggiornamenti simultanei di una risorsa di sovrascriversi a vicenda.
8. Accetta-range: byte ==> Il byte è l'unità utilizzata nel server per il contenuto.
9.Lunghezza del contenuto: 152138 ==> Questa è la lunghezza totale di Alice.txt in byte.
10. Keep-alive: timeout = 5, max = 100 ==> Mantieni i parametri vivi.
11.Connessione: Keep-alive ==> Controlla la connessione se la connessione di rete rimane aperta al termine della transazione corrente. Il tipo di connessione è mantenersi in vita.
12.Tipo di contenuto: testo/semplice; chatset = utf-8 ==> Il contenuto [Alice.txt] il tipo è text e charset standard è UTF-8.

Ecco lo screenshot per diversi campi di pacchetto HTTP OK.

Quindi ora sappiamo cosa succede quando richiediamo qualsiasi file presente nel server web.

Conclusione:

HTTP è un semplice protocollo dell'applicazione che utilizziamo ogni giorno nella nostra vita. Ma non è sicuro, quindi HTTPS è stato implementato. Quella "s" sta per sicure. Ecco perché il nome del server Web così massimo inizia con HTTPS: // [WebSitename]. Ciò significa che tutte le comunicazioni tra te e il server sono crittografate. Avremo una discussione separata su questo HTTPS in futuro.