मुखपृष्ठ » कैसे » क्यों मेरा वेब ब्राउज़र कभी-कभी शेष टाइम्स डाउनलोड करने में विफल होता है?

    क्यों मेरा वेब ब्राउज़र कभी-कभी शेष टाइम्स डाउनलोड करने में विफल होता है?

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

    आज का प्रश्न और उत्तर सत्र सुपरयूज़र के सौजन्य से आता है-स्टैक एक्सचेंज का एक उपखंड, क्यू एंड ए वेब साइटों का एक समुदाय-संचालित समूह है।.

    प्रश्न

    सुपरयूज़र रीडर कोल्डब्लेकाइस जानना चाहता है कि उसका ब्राउज़र हमेशा गंदगी क्यों नहीं करता है:

    कभी-कभी, वेब ब्राउज़र में किसी फ़ाइल को डाउनलोड करते समय, डाउनलोड की प्रगति फ़ाइल के कुल आकार को "नहीं" जानती है, या डाउनलोड में कितनी दूर है - यह सिर्फ उस गति को दिखाता है जिस पर वह डाउनलोड कर रहा है, कुल के साथ। "अज्ञात" के रूप में.

    ब्राउज़र को कुछ फ़ाइलों के अंतिम आकार का पता क्यों नहीं चलेगा? यह जानकारी पहली जगह में कहां मिलती है?

    वास्तव में कहां??

    जवाब

    SuperUser योगदानकर्ता Gronostaj निम्नलिखित अंतर्दृष्टि प्रदान करता है:

    वेब सर्वर से दस्तावेज़ों का अनुरोध करने के लिए, ब्राउज़र HTTP प्रोटोकॉल का उपयोग करते हैं। आप अपने पता बार से उस नाम को जान सकते हैं (यह अब छिपाया जा सकता है, लेकिन जब आप पता बार पर क्लिक करते हैं, तो URL को कॉपी करें और इसे कुछ टेक्स्ट एडिटर में पेस्ट करें, आप देखेंगे एचटीटीपी:// शुरू में)। यह एक सरल पाठ-आधारित प्रोटोकॉल है और यह इस तरह काम करता है:

    सबसे पहले, आपका ब्राउज़र वेबसाइट के सर्वर से जुड़ता है और उस दस्तावेज़ का एक URL भेजता है जिसे वह डाउनलोड करना चाहता है (वेब ​​पेज दस्तावेज़ भी हैं) और ब्राउज़र के बारे में कुछ विवरण (उपयोगकर्ता-एजेंट आदि)। उदाहरण के लिए, SuperUser साइट पर मुख्य पृष्ठ लोड करने के लिए, http://superuser.com/, मेरा ब्राउज़र एक अनुरोध भेजता है जो इस तरह दिखता है:

    GET / HTTP / 1.1 होस्ट: superuser.com कनेक्शन: Keep-ज़िंदा स्वीकार करें: text / html, application / xhtml + xml, application / xml; q = 0.9, * / *; q = 0.8 उपयोगकर्ता-एजेंट: Mozilla / 5.0 ( Windows NT 6.1; WOW64) स्वीकार-एनकोडिंग: gzip, deflate, sdch स्वीकार-भाषा: pl-PL, pl; q = 0.8, en-US; q = 0.6, en; q = 0.4 कुकी: [सुरक्षा के लिए हटाया गया] DNT : 1 इफ-मॉडिफ़ाइड-चूंकि: मंगल, 09 जुलाई 2013 07:14:17 GMT 

    पहली पंक्ति निर्दिष्ट करती है कि सर्वर को कौन से दस्तावेज़ को वापस करना चाहिए। अन्य पंक्तियों को हेडर कहा जाता है; वे इस तरह दिखते हैं:

    हैडर का नाम: हैडर मूल्य 

    ये लाइनें अतिरिक्त जानकारी भेजती हैं जो सर्वर को यह तय करने में मदद करती हैं कि क्या करना है.

    यदि सब कुछ ठीक है, तो सर्वर अनुरोधित दस्तावेज़ भेजकर जवाब देगा। प्रतिक्रिया एक स्थिति संदेश के साथ शुरू होती है, इसके बाद कुछ हेडर (दस्तावेज़ के बारे में विवरण के साथ) और अंत में, यदि सब कुछ ठीक है, तो दस्तावेज़ की सामग्री। मेरे अनुरोध के लिए सुपरयूजर सर्वर का यह उत्तर कैसा दिखता है:

    HTTP / 1.1 200 ठीक कैश-नियंत्रण: सार्वजनिक, अधिकतम-आयु = 60 सामग्री-प्रकार: पाठ / html; charset = utf-8 अवसान: मंगल, 09 जुलाई 2013 07:27:20 GMT अंतिम-संशोधित: Tue, 09 Jul 2013 07:26:20 GMT वैरी: * X- फ़्रेम-विकल्प: SAMEORIGIN दिनांक: मंगल, 09 जुलाई 2013 07:26:19 GMT सामग्री-लंबाई: 139672 [… स्निप…]  

    अंतिम पंक्ति के बाद, SuperUser का सर्वर कनेक्शन बंद कर देता है.

    पहली पंक्ति (HTTP / 1.1 200 ठीक है) प्रतिक्रिया कोड शामिल है, इस मामले में यह है 200 ठीक है. इसका मतलब है कि सर्वर अनुरोध के अनुसार एक दस्तावेज लौटाएगा। जब सर्वर ऐसा करने का प्रबंधन नहीं करता है, तो कोड कुछ और होगा: आपने शायद देखा है 404 नहीं मिला, तथा 403 निषिद्ध बहुत आम है, भी। फिर हेडर फॉलो करते हैं.

    जब ब्राउज़र को प्रतिक्रिया में एक खाली रेखा मिलती है, तो यह जानता है कि उस पंक्ति के पिछले सब कुछ उस दस्तावेज़ की सामग्री है जिसे उसने अनुरोध किया था। तो इस मामले में  सुपरयूजर के होमपेज कोड की पहली पंक्ति है। अगर मैं एक दस्तावेज़ को डाउनलोड करने का अनुरोध कर रहा था, तो यह संभवतः कुछ अस्पष्ट चरित्र होगा, क्योंकि अधिकांश दस्तावेज़ प्रारूप पूर्व प्रसंस्करण के बिना अपठनीय हैं.

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

    वैसे भी, कारण कुछ भी हो, हैडर गायब हो सकता है। उस स्थिति में ब्राउज़र को यह पता नहीं होता है कि सर्वर कितना डेटा भेजने जा रहा है, और इस प्रकार दस्तावेज़ आकार प्रदर्शित करता है अनजान, कनेक्शन बंद करने के लिए सर्वर की प्रतीक्षा कर रहा है। और यही कारण है कि अज्ञात दस्तावेज़ आकार.


    स्पष्टीकरण में कुछ जोड़ना है? टिप्पणियों में ध्वनि बंद। अन्य टेक-सेवी स्टैक एक्सचेंज उपयोगकर्ताओं से अधिक उत्तर पढ़ना चाहते हैं? पूरी चर्चा धागा यहाँ देखें.