Anasayfa » nasıl » Neden Web Tarayıcım Bazen Kalan İndirme Sürelerini Görüntülemiyor?

    Neden Web Tarayıcım Bazen Kalan İndirme Sürelerini Görüntülemiyor?

    Bazen, tarayıcınızdaki (veya başka bir uygulamadaki) güvenilir indirme ilerleme ölçer, ellerini havaya fırlatır ve kalan indirme süresini görüntülemekten vazgeçer. Neden bazen öngörülen indirme zamanını etkiliyor ve bazen hepsini rapor etmiyor?

    Bugünün Soru ve Cevap oturumu bize topluluk tarafından yönlendirilen bir soru-cevap web sitesi grubu olan Stack Exchange'in bir alt birimi olan SuperUser'ın izniyle geliyor..

    Soru

    SuperUser okuyucu Coldblackice, tarayıcısının neden her zaman pislik bulaşmadığını bilmek istiyor:

    Bazen, bir web tarayıcısında bir dosyayı indirirken, indirme işlemi dosyanın toplam boyutunu veya indirme süresinin ne kadar sürdüğünü "bilmez" - sadece indirme hızını gösterir “Bilinmeyen” olarak.

    Tarayıcı neden bazı dosyaların son boyutunu bilmiyor? Bu bilgiyi ilk olarak nereden alıyor??

    Nerede gerçekten?

    Cevaplar

    SuperUser yazarı Gronostaj aşağıdaki bilgileri sunmaktadır:

    Web sunucularından belge istemek için tarayıcılar HTTP protokolünü kullanır. Bu adı adres çubuğunuzdan biliyor olabilirsiniz (şimdi gizlenmiş olabilir, ancak adres çubuğunu tıklattığınızda, URL'yi kopyalayın ve bir metin düzenleyiciye yapıştırın, göreceksiniz). http: // başlangıçta). Basit bir metin tabanlı protokoldür ve şöyle çalışır:

    İlk olarak, tarayıcınız web sitesinin sunucusuna bağlanır ve indirmek istediği dokümanın URL'sini (web sayfaları da dokümanlar) ve tarayıcının kendisi ile ilgili bazı ayrıntıları (Kullanıcı Aracısı vb.) Gönderir. Örneğin, ana sayfayı SuperUser sitesine yüklemek için, http://superuser.com/, tarayıcım şuna benzeyen bir istek gönderir:

    GET / HTTP / 1.1 Ana Bilgisayar: superuser.com Bağlantı: canlı tutma Kabul et: metin / html, uygulama / xhtml + xml, uygulama / xml; q = 0.9, * / *; q = 0.8 Kullanıcı-Ajan: Mozilla / 5.0 ( Windows NT 6.1; WOW64) Kabul Et Kodlama: gzip, deflate, sdch Kabul Et Dili: pl-PL, pl; q = 0.8, en-US; q = 0.6, en; q = 0.4 Çerez: [güvenlik nedeniyle kaldırıldı] DNT : 1 If-Modified-Since: Sal, 09 Tem 2013 07:14:17 GMT 

    İlk satır, sunucunun hangi belgeyi döndürmesi gerektiğini belirtir. Diğer satırlara başlık denir; şöyle gözüküyorlar:

    Başlık adı: Başlık değeri 

    Bu satırlar, sunucunun ne yapacağına karar vermesine yardımcı olan ek bilgiler gönderir..

    Her şey yolundaysa, sunucu istenen belgeyi göndererek yanıt verir. Yanıt, bir durum mesajı ile başlar, ardından bazı başlıklar (belge hakkında ayrıntılı bilgi verilir) ve son olarak, her şey yolundaysa, belgenin içeriği ile başlar. SuperUser sunucusunun isteğime olan cevabı şöyle görünüyor:

    HTTP / 1.1 200 Tamam Önbellek Kontrolü: genel, maksimum yaş = 60 İçerik Türü: text / html; charset = utf-8 Sona Erdi: Salı, 09 Tem 2013 07:27:20 GMT Son Değiştirme Tarihi: Salı, 09 Tem 2013 07:26:20 GMT Değişen: * X-Frame-Options: SAMEORIGIN Tarih: Salı, 09 Tem 2013 07:26:19 GMT İçerik Uzunluğu: 139672 [… snip…]  

    Son satırdan sonra, Süper Kullanıcı'nın sunucusu bağlantıyı kapatır.

    İlk satır (HTTP / 1.1 200 Tamam) cevap kodunu içerir, bu durumda 200 tamam. Sunucunun istendiği gibi bir belge döndüreceği anlamına gelir. Sunucu bunu başaramazsa, kod başka bir şey olacaktır: Muhtemelen gördünüz 404 Bulunamadı, ve 403 yasak de oldukça yaygındır. Sonra başlıkları takip.

    Tarayıcı yanıtta boş bir satır bulduğunda, bu satırın üstündeki her şeyin istediği belgenin içeriği olduğunu bilir. Yani bu durumda  SuperUser'in ana sayfa kodunun ilk satırıdır. İndirmek için bir belge talep ediyor olsaydım, muhtemelen bazı saçma karakterler olurdu, çünkü çoğu belge formatları önceden işlem görmeden okunamıyordu..

    Başlıklara dön. Bizim için en ilginç olanı sonuncusu, İçerik Uzunluğu. Tarayıcıya, boş satırdan sonra kaç bayt veri beklemesi gerektiğini bildirir, bu nedenle temel olarak bayt olarak ifade edilen belge büyüklüğüdür. Bu başlık zorunlu değildir ve sunucu tarafından atlanabilir. Bazen belge boyutu tahmin edilemez (örneğin belge anında oluşturulduğunda), bazen tembel programcılar bunu içermez (sürücü indirme sitelerinde oldukça yaygındır), bazen web siteleri, bilmeyenler tarafından oluşturulur böyle bir başlığın.

    Neyse, sebebi ne olursa olsun, başlık eksik olabilir. Bu durumda, tarayıcı sunucunun ne kadar veri göndereceğini bilmez ve bu nedenle belge boyutunu Bilinmeyen, sunucunun bağlantıyı kapatmasını bekleyin. Ve bu da bilinmeyen belge boyutlarının nedeni.


    Açıklamaya eklemek için bir şey var mı? Yorumlarda ses kesiliyor. Diğer teknoloji meraklısı Stack Exchange kullanıcılarından daha fazla cevap okumak ister misiniz? Burada tüm tartışma konusuna göz atın.