web-dev-qa-db-ja.com

テキストベースのブラウザはネットワークトラフィックを削減しますか?

lynxlinkselinksなどのテキストベースのブラウザはより少ない帯域幅を消費しますかGUIベースのブラウザ(つまり、Firefox、Chromeなど)よりも?

私は推測noトラフィックの減少です。
根拠:テキストベースのブラウザは、サーバーによって提供されるページ全体をダウンロードすると思います。ページウィジェットの合理化または削減は、ローカルで行われます。

ほとんどのテキストベースのブラウザはページスクリプトやSWFを実行しないため、トラフィックがいくらか減少する可能性があります。

27
Paulb

Webサーバーは「Webサイト全体」を送信しませんが、ブラウザが要求するドキュメントを送信します。

たとえば、 https://www.google.com/ にアクセスすると、ブラウザはドキュメントをサーバーに問い合わせますhttps://www.google.com/。サーバーはリクエストを処理し、HTMLコードを返します。

次に、ブラウザはサーバーが送信したものを確認します。この場合、それはHTML Webページなので、ドキュメントを解析し、参照されているスクリプト、スタイルシート、画像、フォントなどを探します。

この段階で、ブラウザはそのドキュメントのダウンロードを終了しましたが、参照されているドキュメントはまだダウンロードされていません。そうするか、スキップするかを選択できます。通常のブラウザは、最高の表示エクスペリエンスを得るために、参照されているすべてのドキュメントをダウンロードしようとします。広告ブロッカー(Adblockなど)またはプライバシープラグイン(Ghostery、NoScript)がある場合、一部のリソースもブロックする可能性があります。

次に、ブラウザーは、サーバーに1つのリソースを明示的に要求するたびに、参照されているドキュメントを1つずつダウンロードします。 Googleの例では、ブラウザは次の参照を見つけますが、それらのいくつかに名前を付けます。

(実際のファイルは、ユーザー、ブラウザー、セッションによって異なる場合があり、時間の経過とともに変化する場合があります)

テキストベースのブラウザは、画像、Flashファイル、HTML5ビデオなどをダウンロードしないため、ダウンロードするデータが少なくなります。


@NathanOsmanは、コメントで良い点を示しています。小さな画像がHTMLドキュメントに直接埋め込まれている場合があり、その場合はダウンロードを避けられません。これは、リクエストの数を減らすために使用されるもう1つのトリックです。それらは非常に小さいですが、そうでなければ、base64でバイナリファイルをエンコードするオーバーヘッドが大きすぎます。 Google.comにはそのような画像はほとんどありません:(base64エンコードサイズ/デコードサイズ

  • 19×11キーボードアイコン(106 B/76 B)
  • 28×38マイクアイコン(334 B/248 B)
  • Chrome開発ツールリソース]タブに表示される1×1ピクセルの透明GIF(62 B/43 B)が見つかりませんでしたソースにあります-おそらく後でJavaScriptで追加されます
  • 2回表示される1×1pxの破損したGIFファイル(34 B/23 B)。その目的は私には謎です。
53
gronostaj

彼らがそうしているのではないかと思う。テキストベースのブラウザが、デフォルトでは画像や、フォント(必要な場合)、スクリプトなどの外部エンティティなどのリソースをダウンロードするとは思わない。

私はlynxとwgetの両方でこのIANAページ( http://www.iana.org/domains/reserved )を取得しようとするtcpdumpを使用していくつかの基本的なテストを行い、結果がここにありました(HTTPコマンド必要に応じて残りを提供できます)。

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/[email protected] 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)

wgetはブラウザがダウンロードできないリソースをダウンロードする可能性があるため、これは優れたテストではないことに気づきましたが、私が保持していると思われる例-GUIブラウザでコンテンツをレンダリングするには、さらに多くのリクエストが必要です。そのため、GUIブラウザは通常、テキストベースのブラウザよりも多くのネットワークトラフィックを引き起こします。

25
prateek61

テキストベースのブラウザは、肥大化したWeb 2.0の高解像度の画像、ビデオ、インタラクティブなもの(Flashなど)をすべて要求するわけではないため、転送されるデータの量を大幅に削減できると思います。

特定のIPtablesルールにヒットするトラフィックの量をカウントするIPtablesルールを設定して、これをテストすることをお勧めします。

たとえば、トラフィックをカウントするポート80 + 443のルールを作成し、通常のブラウザーでWebを閲覧し、IPtablesカウンターをリセットして、テキストベースのブラウザーで同じことを行います。

動的なウェブコンテンツ(広告など)はアクセスごとに異なる可能性があるため、両方の実行を100%比較することはできないことに注意してください。

1