Metin tabanlı tarayıcılar ağ trafiğini azaltır mı?


27

Gibi yapın metin tabanlı tarayıcılar vaşak , bağlantılar ve elinks bir GUI tabanlı bir tarayıcı (yani, Firefox, Chrome vb) daha az bant genişliği tüketen?

Trafikte azalma olmadığını tahmin ediyorum . Gerekçe: Metin tabanlı bir tarayıcının tüm sayfayı sunucu tarafından önerildiği gibi indirdiğini düşünüyorum. Sayfa widget'ının düzenlenmesi veya azaltılması yerel olarak yapılır.

Metin tabanlı tarayıcıların çoğu daha fazla trafiğe neden olabilecek sayfa komut dosyalarını veya SWF dosyalarını yürütmeyeceğinden, belki trafikte bir miktar azalma olabilir.


19
Veya aslında görüntüleri indirmek ..
Journeyman Geek

4
Üç veya daha fazla büyüklük azaltma sırası beklemek açısından düşünün .
user2338816 21:14

1
@ user2338816 Evet, üç büyüklük derecesinde bir fark olabilir. YouTube’u deneyin! [Sonra ekliyor:] Üzgünüz, bu bir başka üç!
Volker Siegel

3
@ user2338816, üç büyüklük sırasının olması muhtemel değildir. Örneğin, bu belirli sayfa için orijinal html belgesi, önbelleğe almayı göz ardı eden tüm indirilebilir indirilebilir kaynakların yaklaşık% 10'udur, bu nedenle yalnızca tek bir büyüklük sırası; ve birçok ağır öğe (javascript kitaplıkları, büyük resimler vb.) başarıyla önbelleklenir, çoğu zaman birçok sayfada yeniden kullanılır ve bu nedenle çok nadiren indirilir, böylece boyutları toplam ağ trafiği üzerindeki etkilerini gerçekten göstermez.
Peteris

1
@Peteris 3 biraz yüksek olabilir, ancak 2 kesinlikle değil. Diyelim ki burada dikkatinizi çeken% 10, çoğu normal sitede aynı. Ardından, video trafiğinin tüm video trafiğinin% 78'ini oluşturduğunu dikkate alın. Bu, trafiğin% 22'sinin geri kalanı için% 2.2'nin metin olmasını bekleyebiliriz anlamına gelir. Şimdi, bu peçete matematiği, ancak 2 büyüklük sırası olduğu gibi görünüyor.
corsiKa

Yanıtlar:


53

Web sunucusu "web sitesinin tamamını" göndermez, ancak tarayıcıların istediği belgeleri gönderir.

Örneğin, https://www.google.com/ adresine eriştiğinizde tarayıcı belge için sunucuyu sorgular https://www.google.com/. Sunucu isteği işler ve bazı HTML kodlarını geri gönderir.

Ardından tarayıcı sunucunun ne gönderdiğini kontrol eder. Bu durumda HTML web sayfasıdır, bu nedenle dokümanı ayrıştırır ve başvurulan komut dosyalarını, stil sayfalarını, görüntüleri, yazı tiplerini vb. Arar.

Bu aşamada tarayıcı bu belgeyi indirmeyi tamamladı, ancak yine de başvurulan belgeleri indirmedi. Bunu yapmayı veya atlamayı seçebilir. Düzenli tarayıcılar, en iyi görüntüleme deneyimi için referans verilen tüm belgeleri indirmeye çalışacaktır. Bir reklam engelleyiciniz (Adblock gibi) veya gizlilik eklentiniz varsa (Ghostery, NoScript), bazı kaynakları da engelleyebilir.

Ardından tarayıcı referans belgelerini tek tek indirir, her defasında sunucudan açıkça tek bir kaynak ister. Google örneğimizde tarayıcı, sadece birkaç tanesini isimlendirmek için aşağıdaki referansları bulacaktır:

(gerçek dosyalar farklı kullanıcılar, tarayıcılar ve oturumlar için farklı olabilir ve zamanla değişebilir)

Metin tabanlı tarayıcılar görüntüleri, Flash dosyalarını, HTML5 video vb.


@NathanOsman yorumlarda iyi bir noktaya işaret ediyor: Bazen küçük resimler doğrudan HTML belgelerine gömülebilir ve bu durumlarda bunları indirmekten kaçınılmaz. Bu istek sayısını azaltmak için kullanılan başka bir püf noktasıdır. Ancak bunlar çok küçüktür, aksi takdirde base64'teki ikili dosyanın kodlanmasının ek yükü çok büyüktür. Google.com’da bu kadar az resim var: ( base64 kodlanmış boyut / kod çözülmüş boyut )

  • 19 × 11 klavye simgesi (106 B / 76 B)
  • 28 × 38 mikrofon simgesi (334 B / 248 B)
  • Chrome Geliştirme Araçları Kaynakları sekmesinde görünen 1 × 1 piksel saydam GIF (62 B / 43 B) , ancak kaynakta bulamadım - muhtemelen JavaScript ile eklenmiş
  • 1 × 1 px bozuk iki kez görünen GIF dosyası (34 B / 23 B). Amacı benim için bir gizemdir.

1
Birleşik resim bağlantısını beğendim - bu düzgün bir numara.
prateek61

12
@ prateek61 Bütün büyük web siteleri kullanır; aslında video oyunlarından ödünç alınan bir teknik. :) Aslında, birçok web geliştiricisi buna " CSS sprite " veya benzerini bile söyler ( Amazon'da "spriting" olarak adlandırılır, ancak bu varyasyonun ne kadar yaygın olduğunu bilmiyorum).
kabarık

3
Eh, neredeyse - veri URI şemasını ( data:) kullanarak görüntüleri doğrudan HTML'ye gömmek mümkündür .
Nathan Osman

Evet, internetin içeriğinin çoğunu feda etmeye istekli iseniz, bant genişliğini azaltabilirsiniz. Mantıklı görünüyor ... İnternetin% 78'inin video trafiği olduğunu unutmayalım ...
corsiKa

25

Onların yaptıklarından şüpheleniyorum. Metin tabanlı tarayıcıların (varsayılan olarak) yazı tipleri (gerekirse), komut dosyaları, vb. Gibi görüntüler veya dış varlıklar gibi kaynakları indireceğine inanmıyorum.

Bu IANA sayfasını ( http://www.iana.org/domains/reserved ) hem lynx hem de wget ile almaya çalışırken bazı temel testler yaptım ve sonuçlarım oldu (sadece HTTP komutları, gerisini sağlayabilirim) gerekirse).

lynx http://www.iana.org/domains/reserved

  4   0.072774 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /domains/reserved HTTP/1.0
 10   0.146971   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (text/html)

wget -p http://www.iana.org/domains/reserved

  4   0.072139 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /domains/reserved HTTP/1.0
 22   0.145905   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (text/html)
 28   0.219381 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /robots.txt HTTP/1.0
 30   0.291877   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (text/plain)
 32   0.292550 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2013.1/screen.css HTTP/1.0
 94   0.440388   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (text/css)
100   0.514652 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2013.1/print.css HTTP/1.0
132   0.660071   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (text/css)
138   0.733546 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_img/bookmark_icon.ico HTTP/1.0
154   0.878227   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (application/octet-stream)
160   0.950713 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_js/2013.1/jquery.js HTTP/1.0
277   1.172095   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (application/x-javascript)
283   1.244571 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_js/2013.1/iana.js HTTP/1.0
285   1.317059   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK
287   1.317609 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_img/2013.1/iana-logo-header.svg HTTP/1.0
332   1.464356   192.0.32.8 -> xx.xx.xx.xx HTTP/XML HTTP/1.1 200 OK
337   1.536749 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_img/2013.1/icann-logo.svg HTTP/1.0
348   1.610449   192.0.32.8 -> xx.xx.xx.xx HTTP/XML HTTP/1.1 200 OK
353   1.682727 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2013.1/fonts/OpenSans-Light.ttf HTTP/1.0
658   2.552776   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (application/octet-stream)
663   2.625015 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2013.1/fonts/OpenSans-Regular.ttf HTTP/1.0
926   3.063537   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (application/octet-stream)
932   3.135931 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2013.1/fonts/OpenSans-Semibold.ttf HTTP/1.0
1216   3.573481   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (application/octet-stream)
1222   3.645984 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2013.1/fonts/OpenSans-Bold.ttf HTTP/1.0
1500   4.012966   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (application/octet-stream)
1506   4.085693 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2013.1/fonts/Inconsolata.otf HTTP/1.0
1584   4.304016   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (application/octet-stream)
1589   4.376612 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_img/2011.1/icons/icon_alert.png HTTP/1.0
1592   4.449311   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (PNG)
1594   4.449930 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_img/2013.1/iana-logo-homepage.png HTTP/1.0
1627   4.596125   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (PNG)
1633   4.668596 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_img/2013.1/iana-logo-homepage@2x.png HTTP/1.0
1704   4.895581   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (PNG)
1710   4.968097 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2011.1/fonts/OpenSans-Light.ttf HTTP/1.0
1982   5.364584   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (application/octet-stream)
1988   5.438091 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2011.1/fonts/OpenSans-Regular.ttf HTTP/1.0
2243   5.830353   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (application/octet-stream)
2249   5.902861 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2011.1/fonts/OpenSans-SemiBold.ttf HTTP/1.0
2259   5.976674   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 404 NOT FOUND  (text/html)
2263   6.047876 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2011.1/fonts/OpenSans-Bold.ttf HTTP/1.0
2533   6.415590   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (application/octet-stream)
2539   6.487909 xx.xx.xx.xx -> 192.0.32.8   HTTP GET /_css/2011.1/fonts/Inconsolata.otf HTTP/1.0
2616   6.720477   192.0.32.8 -> xx.xx.xx.xx HTTP HTTP/1.1 200 OK  (application/octet-stream)

Bu yüzden, wgetbunun bir tarayıcının indiremeyebileceği kaynakları indirebileceği gibi harika bir test olmadığını biliyorum, ancak sanırım örnek tutar - bir GUI tarayıcısında içerik oluşturmak için gereken daha birçok istek var. Bu nedenle, GUI tarayıcıları genellikle metin tabanlı tarayıcılardan daha fazla ağ trafiğine neden olur.


wgetBir tarayıcı olarak kabul edilebileceğini sanmıyorum . Daha iyi denemek elinksya da benzer bir şey.
Darkhogg

Bu yüzden wget, yapılacak tüm HTTP isteklerini ve cevaplarını göstermek için kullandım . -pParametresi aşağıdaki gibi tanımlanmıştır: -p, --page-requisites get all images, etc. needed to display HTML page.. Filtrelemek istemediğim diğer istekleri yapma eğiliminde oldukları için gerçek bir GUI tarayıcısı kullanmak istemedim.
prateek61 21:14

3
Ben de bu cevabı seviyorum. Wget inceleme ilginçti.
Paulb

1

Metin tabanlı Tarayıcıların, tüm bu şişirilmiş web 2.0 yüksek Çözünürlüklü Resimler, Videolar ve etkileşimli öğeleri (Flash ve diğerleri) istemeyeceklerinden, aktarılan verilerin miktarını önemli ölçüde azaltacağını düşünüyorum.

Bunu, sadece belirli bir IPtables kuralına vuran trafik miktarını sayan bir IPtables Kuralı oluşturarak test etmenizi öneriyorum.

Örneğin, trafik sayımı olan 80 + 443 numaralı bağlantı noktası için bir kural oluşturun ve normal bir tarayıcıyla web'e göz atın, IPtables Counter'ı sıfırlayın ve aynı şeyi metin tabanlı bir tarayıcıyla yapın.

Dinamik web içeriği (reklamlar ve sayfalar) her Erişim'de farklı olabileceğinden, her iki işlemi de% 100 karşılaştıramayacağınızı unutmayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.