2013-08-07 12 views
5

Provare a determinare se un utente ha effettivamente scaricato un file eseguibile da un sito Web. Ho esaminato il pcap e vedo che il campo Content-Length = 784.536 ma Server-> User è 430.380 byte. Questo mi dice che l'utente non ha scaricato completamente il file. Ho anche scaricato il file e vedo che è 766 KB. È possibile che il valore della lunghezza del contenuto basato sull'intestazione HTTP non sia uguale alla dimensione del file di quel file EXE se viene scaricato (la dimensione del file locale)? È corretto?Lunghezza del contenuto HTTP inferiore a Dimensione byte del file, è stato scaricato completamente?

Packet Data Capture (non riesco a postare le immagini)

GET /ChromasLite211Setup.exe HTTP/1.1 
Host: www.technelysium.com.au 
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:17.0) Firefox/17.0 
Accept: text/html, application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-us 
Accept-Enconding: gzip, deflate 
Connection: keep-alive 
Referrer: http://technelysium.com.au/ 

HTTP/1.1 200 OK 
Date: Thu, 01 Aug 2013 17:28:17 GMT 
Server: Apache 
Last-Modified: Mon, 15 Apr 2013 08:29:57 GMT 
Accept-Ranges: bytes 
Content-Length: 784536 
Keep-Alive: timeout=5, max=100 
Connection: Keep-Alive 
Content-Type: application/x-msdownload 

[email protected]!..L..This program must be run under Win32 


Entire Conversation (430722 bytes) 
Users IP -> Server IP (342 bytes) 
Server IP -> Users IP (430380) 

Quando scarico il file dal sito mostra come, "file binario (766 KB)"

+0

Qual è la dimensione del file in byte? Il campo Content-Length è calcolato in ottetti (byte). –

risposta

6

Conversione Byte a Kilobytes

784,536/1024 = 766.14 
+0

Giusto. Quindi, quando scarico il file da solo, vedo che è 766 KB. Ma allora come mai il pcap non mostra l'intera conversazione = Content-Length? Significa che non ha scaricato? La dimensione del file deve corrispondere alla lunghezza del contenuto? – user2661503

+1

Non sono sicuro di aver capito la tua domanda ... La lunghezza del contenuto è un'indicazione di quanto una risposta (file) deve aspettarsi dal server ... Non ha alcuna influenza sul fatto che il download sia stato trasferito con successo ... Alcuni i server non rispondono nemmeno con una lunghezza del contenuto o impostano la lunghezza del contenuto a zero (ecco perché nei download a volte vediamo il tempo/lo stato del download come sconosciuto poiché il browser non ha modo di sapere quanto grande è il file che sta ottenendo .. .) –

+0

Sì, la dimensione del file trasferito deve essere esattamente uguale a quella dei byte nella lunghezza del contenuto. Ci sono alcune cose che potrebbero cambiarlo, ad esempio: se viene inviato nella codifica gzip, il numero di byte trasferiti non sarà uguale alla dimensione del file non compresso risultante (ovviamente), ma l'intestazione Content-Length DEVE mostrare l'esatto numero di byte nel corpo di risposta HTTP. Se non c'è l'intestazione Content-Length, allora potrebbe usare qualcosa come la codifica chunked. A Content-Length: 0 header significa che DEVONO essere inviati 0 byte. – Kylar

0

No. L'utente non ha scaricato tutti i byte.

Se un server invia un'intestazione Content-Length, è esattamente il numero di byte di contenuto che intende inviare come corpo di risposta HTTP. Se è stato inviato meno di quel numero, è successo qualcosa (Connessione terminata dal client, Timeout del client, ecc.)

Problemi correlati