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

विषयसूची:

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

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

वीडियो: मेरा वेब ब्राउज़र कभी-कभी शेष डाउनलोड टाइम्स प्रदर्शित करने में विफल क्यों होता है?
वीडियो: How to Fix Cast Device not Showing in Chrome - YouTube 2024, अप्रैल
Anonim
कभी-कभी आपके ब्राउज़र (या अन्य एप्लिकेशन) पर वफादार डाउनलोड प्रगति मीटर हवा में अपने हाथ फेंकता है और शेष डाउनलोड समय प्रदर्शित करने पर छोड़ देता है। कभी-कभी प्रोजेक्ट किए गए डाउनलोड समय को क्यों नकारता है और कभी-कभी यह सब एक साथ रिपोर्ट करने में विफल रहता है?
कभी-कभी आपके ब्राउज़र (या अन्य एप्लिकेशन) पर वफादार डाउनलोड प्रगति मीटर हवा में अपने हाथ फेंकता है और शेष डाउनलोड समय प्रदर्शित करने पर छोड़ देता है। कभी-कभी प्रोजेक्ट किए गए डाउनलोड समय को क्यों नकारता है और कभी-कभी यह सब एक साथ रिपोर्ट करने में विफल रहता है?

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

प्रश्न

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

Occasionally, when downloading a file in a web browser, the download progress doesn’t “know” the total size of the file, or how far along in the download it is - it just shows the speed at which it’s downloading, with a total as “Unknown”.

Why wouldn’t the browser know the final size of some files? Where does it get this information in the first place?

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

जवाब

सुपरयूसर योगदानकर्ता ग्रोनोस्टज निम्नलिखित अंतर्दृष्टि प्रदान करता है:

To request documents from web servers, browsers use the HTTP protocol. You may know that name from your address bar (it may be hidden now, but when you click the address bar, copy the URL and paste it in some text editor, you’ll see

https://

शुरू में)। यह एक साधारण पाठ-आधारित प्रोटोकॉल है और यह इस तरह काम करता है:

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

https://superuser.com/

मेरा ब्राउज़र एक ऐसा अनुरोध भेजता है जो इस तरह दिखता है:

GET / HTTP/1.1 Host: superuser.com Connection: keep-alive Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) Accept-Encoding: gzip,deflate,sdch Accept-Language: pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4 Cookie: [removed for security] DNT: 1 If-Modified-Since: Tue, 09 Jul 2013 07:14:17 GMT

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

Header name: Header value

ये पंक्तियां अतिरिक्त जानकारी भेजती हैं जो सर्वर को यह तय करने में सहायता करती है कि क्या करना है।

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

HTTP/1.1 200 OK Cache-Control: public, max-age=60 Content-Type: text/html; charset=utf-8 Expires: Tue, 09 Jul 2013 07:27:20 GMT Last-Modified: Tue, 09 Jul 2013 07:26:20 GMT Vary: * X-Frame-Options: SAMEORIGIN Date: Tue, 09 Jul 2013 07:26:19 GMT Content-Length: 139672 […snip…]

अंतिम पंक्ति के बाद, सुपरयूसर का सर्वर कनेक्शन बंद कर देता है।

पहली पंक्ति (

HTTP/1.1 200 OK

) प्रतिक्रिया कोड है, इस मामले में यह है

200 OK

। इसका मतलब है कि सर्वर अनुरोध के अनुसार एक दस्तावेज़ वापस करेगा। जब सर्वर ऐसा करने का प्रबंधन नहीं करता है, तो कोड कुछ और होगा: आपने शायद देखा होगा

404 Not Found

तथा

403 Forbidden

भी काफी आम है। फिर हेडर का पालन करें।

जब ब्राउज़र को प्रतिक्रिया में एक खाली रेखा मिलती है, तो यह जानता है कि उस पंक्ति से पिछली सब कुछ उस दस्तावेज़ की सामग्री है जिसने अनुरोध किया था। तो इस मामले में

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

शीर्षलेख पर वापस। हमारे लिए सबसे दिलचस्प एक आखिरी है,

Content-Length

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

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

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

सिफारिश की: