2013-08-07 6 views
5

Versuchen, festzustellen, ob ein Benutzer tatsächlich eine ausführbare Datei von einer Website heruntergeladen hat. Ich untersuchte das pcap und ich sehe, dass das Feld Content-Length = 784.536, aber der Server-> User ist 430.380 Bytes. Das sagt mir, dass der Benutzer die Datei nicht vollständig heruntergeladen hat. Ich habe die Datei auch selbst heruntergeladen und sehe, dass sie 766 KB groß ist. Ist es möglich, dass der Inhalt-Länge-Wert, der auf dem HTTP-Header basiert, nicht der Dateigröße dieser EXE-Datei entspricht, wenn sie heruntergeladen wird (die lokale Dateigröße)? Ist das richtig?HTTP-Inhaltslänge kleiner als Dateibyte-Größe, wurde vollständig heruntergeladen?

Packet Capture-Daten (Ich kann nicht Screenshots veröffentlichen)

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) 

Wenn ich die Datei von der Website herunterladen es zeigt, wie "Binärdatei (766 KB)"

+0

Wie groß ist die Dateigröße in Bytes? Das Feld Content-Length wird in Oktetts (Bytes) berechnet. –

Antwort

6

Bytes Converting zu Kilobytes

784,536/1024 = 766.14 
+0

Rechts. Also, wenn ich die Datei selbst herunterlade, sehe ich, dass es 766KB ist. Aber wie kommt es, dass die pcap nicht die gesamte Konversation = Content-Length anzeigt? Bedeutet das, dass es nicht heruntergeladen wurde? Muss die Dateigröße mit der Länge des Inhalts übereinstimmen? – user2661503

+1

Ich bin mir nicht sicher, ob ich Ihre Frage verstehe ... Die Inhaltslänge ist ein Hinweis darauf, wie groß die Antwort (Datei) vom Server sein soll ... Es hat keinen Einfluss darauf, ob der Download erfolgreich übertragen wurde ... Einige Server antworten nicht einmal mit einer Inhaltslänge oder setzen Inhaltlänge auf Null (deshalb sehen wir bei Downloads manchmal die Downloadzeit/den Status als unbekannt, da der Browser nicht wissen kann, wie groß eine Datei ist, die er bekommt. .) –

+0

Ja, die Größe der übertragenen Datei sollte exakt mit den Bytes in der Content-Length übereinstimmen. Es gibt ein paar Dinge, die es ändern könnten, dh: Wenn es in der gzip-Kodierung gesendet wird, dann entspricht die Anzahl übertragener Bytes nicht der resultierenden entpackten Dateigröße (natürlich), aber der Content-Length-Header MUSS das genaue anzeigen Anzahl der Bytes im HTTP-Antworttext. Wenn KEIN Content-Length-Header vorhanden ist, verwendet es möglicherweise so etwas wie Chunked-Encoding. Ein Content-Length: 0-Header bedeutet, dass 0 Bytes gesendet werden MÜSSEN. – Kylar

0

Nein. Der Benutzer hat nicht alle Bytes heruntergeladen.

Wenn ein Server einen Content-Length-Header sendet, entspricht dies genau der Anzahl an Byte Inhalt, die als HTTP-Antworttext gesendet werden soll. Wenn weniger als diese Nummer gesendet wurde, ist etwas passiert (Client hat die Verbindung beendet, Client ist abgelaufen, usw.)

Verwandte Themen