2013-08-07 9 views
5

यह निर्धारित करने का प्रयास कर रहा है कि उपयोगकर्ता ने वास्तव में किसी वेबसाइट से निष्पादन योग्य फ़ाइल डाउनलोड की है या नहीं। मैंने पैकेप की जांच की और मुझे लगता है कि सामग्री-लंबाई फ़ील्ड = 784,536 लेकिन सर्वर-> उपयोगकर्ता 430,380 बाइट्स है। यह मुझे बताता है कि उपयोगकर्ता पूरी तरह से फ़ाइल डाउनलोड नहीं किया था। मैंने फ़ाइल को भी डाउनलोड किया और देखा कि यह 766 केबी है। क्या यह संभव है कि HTTP शीर्षलेख के आधार पर सामग्री-लंबाई मान उस EXE फ़ाइल के फ़ाइल आकार के बराबर नहीं होगा यदि यह डाउनलोड किया गया है (स्थानीय फ़ाइल आकार)? क्या ये सही है?HTTP सामग्री लंबाई फ़ाइल बाइट आकार से कम, क्या यह पूरी तरह से डाउनलोड किया गया?

पैकेट डाटा कैप्चर (मैं स्क्रीनशॉट पोस्ट नहीं कर सकते)

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) 

जब मैं साइट के रूप में पता चलता है, "बाइनरी फ़ाइल (766 KB)"

+0

बाइट्स में फ़ाइल का आकार क्या है? सामग्री-लंबाई फ़ील्ड की गणना ऑक्टेट्स (बाइट्स) में की जाती है। –

उत्तर

6

परिवर्तित बाइट्स से फ़ाइल डाउनलोड किलोबाइट्स

784,536/1024 = 766.14 
+0

दाएं। इसलिए, जब मैं स्वयं फ़ाइल डाउनलोड करता हूं, तो मुझे लगता है कि यह 766 केबी है। लेकिन फिर कैसे पंप पूरी वार्तालाप = सामग्री-लंबाई नहीं दिखाता है? क्या इसका मतलब यह डाउनलोड नहीं हुआ? क्या फ़ाइल आकार को सामग्री-लंबाई से मेल खाना पड़ेगा? – user2661503

+1

मुझे यकीन नहीं है कि मैं आपके प्रश्न को समझता हूं ... सामग्री-लंबाई सर्वर से अपेक्षा करने के लिए प्रतिक्रिया (फ़ाइल) कितनी बड़ी है इसका एक संकेत है ... इस पर कोई असर नहीं है कि डाउनलोड सफलतापूर्वक स्थानांतरित हो गया है ... कुछ सर्वर सामग्री-लंबाई के साथ भी उत्तर नहीं देते हैं या सामग्री-लंबाई को शून्य तक सेट नहीं करते हैं (यही कारण है कि डाउनलोड पर हम कभी-कभी डाउनलोड समय/स्थिति को अज्ञात के रूप में देखते हैं क्योंकि ब्राउजर के पास यह जानने का कोई तरीका नहीं है कि यह कितनी बड़ी फ़ाइल हो रही है .. ।) –

+0

हां, स्थानांतरित फ़ाइल का आकार सामग्री-लंबाई में बाइट्स के समान होना चाहिए। ऐसी कुछ चीजें हैं जो इसे बदल सकती हैं, यानी: यदि इसे gzip एन्कोडिंग में भेजा जा रहा है, तो हस्तांतरित बाइट्स के # परिणामस्वरूप अनजिप फ़ाइल आकार (बेशक) के बराबर नहीं होंगे, लेकिन सामग्री-लंबाई शीर्षलेख को सटीक दिखाना चाहिए HTTP प्रतिक्रिया शरीर में बाइट्स की संख्या। यदि कोई सामग्री-लंबाई शीर्षलेख नहीं है, तो यह चंक-एन्कोडिंग जैसे कुछ का उपयोग कर सकता है। एक सामग्री-लंबाई: 0 हेडर का अर्थ है कि 0 बाइट्स भेजे जाने चाहिए। – Kylar

0

नहीं। उपयोगकर्ता ने सभी बाइट्स डाउनलोड नहीं किए हैं।

यदि कोई सर्वर सामग्री-लंबाई शीर्षलेख भेजता है, तो यह वास्तव में कितनी बाइट्स है जो HTTP प्रतिक्रिया बॉडी के रूप में भेजने का इरादा रखता है। यदि उस संख्या से कम भेजा गया था, तो कुछ हुआ (क्लाइंट समाप्त कनेक्शन, क्लाइंट टाइम आउट, इत्यादि)

संबंधित मुद्दे