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


27

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

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

たぶんそこにあるいくつかのほとんどのテキストベースのブラウザは、より多くのトラフィックが発生する可能性がありますページのスクリプトやSWFを実行しないであろうと、トラフィックの減少は、。


19
それとも、実際に..画像をダウンロード
ジャーニーマンオタク

4
3桁以上の削減を期待するという観点で考えてください。
user2338816 14

1
@ user2338816はい、3桁の違いがあるかもしれません。YouTubeをお試しください![後で追加:]おっと、それはもう3つです!
フォルカーシーゲル14

3
@ user2338816 3桁の可能性は低いでしょう。たとえば、この特定のページでは、元のhtmlドキュメントはキャッシュを無視してダウンロード可能なソース全体の約10%であるため、わずか1桁です。また、多くの重量アイテム(javascriptライブラリ、大きな画像など)は正常にキャッシュされ、多くのページで再利用されることが多いため、ダウンロードされることはほとんどありません。
ペティス14

1
@Peteris 3は少し高いかもしれませんが、2は確かにそうではありません。ここで気付く10%がほとんどの通常のサイトで同じであるとしましょう。次に、ビデオトラフィックがすべてのビデオトラフィックの78%になることを考慮してください。これは、トラフィックの22%の残りについては、2.2%がテキストであると予想できることを意味します。今、これはナプキンの数学ですが、2桁の大きさがあるようです。
corsiKa 14

回答:


53

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

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

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

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

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

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

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


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

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

1
私は画像リンクの組み合わせが好きでした-それはすてきなトリックです。
prateek61 14

12
@ prateek61すべての主要なWebサイトで使用されています。実際には、ビデオゲームから借用した手法です。:)実際、多くのWeb開発者はそれを「CSSスプライト」などと呼んでいますAmazonでは「スプリッティング」と呼ばれていますが、そのバリエーションがどれほど一般的かはわかりません)。
ふわふわ14

3
まあ、ほとんど-データURIスキーム(data:)を使用してHTMLに直接画像を埋め込むことができます。
ネイサンオスマン14

ええ、インターネットのコンテンツの大部分を犠牲にするなら、帯域幅を減らすことができます。論理的なようです... インターネットの78%がビデオトラフィックであることを忘れないでください...
corsiKa 14

25

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

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/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)

wgetブラウザではダウンロードできないかもしれないリソースをダウンロードするかもしれないので、これは素晴らしいテストではないことを理解していますが、私が考える例はそうです。そのため、GUIブラウザは通常、テキストベースのブラウザよりも多くのネットワークトラフィックを引き起こします。


私はwgetブラウザと考えることができるとは思わない。で試すelinksか、似たようなものを試してください。
ダークホッグ14

そこで、私はwget単に、行われるすべてのHTTP要求と応答を示すために使用しました。-pパラメータは、次のように定義されます-p, --page-requisites get all images, etc. needed to display HTML page.。実際のGUIブラウザーは、フィルターで除外する必要のない他の要求を行う傾向があるため、使用したくありませんでした。
prateek61 14

3
私もこの答えが好きです。wgetの検査は興味深いものでした。
ポールブ14

1

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

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

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

動的Webコンテンツ(広告やコンテンツ)はAccessごとに異なる可能性があるため、両方の実行を100%比較することはできません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.