Os navegadores baseados em texto reduzem o tráfego de rede?

27

Os navegadores baseados em texto, como lynx , links e elinks, consomem menos largura de banda que um navegador baseado em GUI (por exemplo, Firefox, Chrome etc.)?

Eu estou supondo que nenhuma redução do tráfego.
Justificativa: Eu acho que um navegador baseado em texto baixa a página inteira conforme é oferecida pelo servidor. Qualquer simplificação ou redução do widget da página é feita localmente.

Talvez haja alguma redução no tráfego, pois a maioria dos navegadores baseados em texto não executa scripts de página ou SWF, o que pode causar mais tráfego.

Paulb
fonte
19
Ou realmente faça o download de imagens ..
Journeyman Geek
4
Pense em termos de esperar uma redução de três ou mais ordens de magnitude .
user2338816
1
@ user2338816 Sim, pode haver uma diferença de três ordens de magnitude. Experimente o YouTube! [Adicionando mais tarde:] Opa, são mais três!
Volker Siegel
3
@ user2338816 três ordens de magnitude seriam improváveis. Por exemplo, para esta página em particular, o documento html original representa cerca de 10% de todas as fontes para download, desconsiderando o cache, portanto, apenas uma única ordem de magnitude; e muitos itens pesados ​​(bibliotecas javascript, imagens grandes etc.) são armazenados em cache com êxito, geralmente reutilizados em muitas páginas e, portanto, são baixados muito raramente, portanto, seu tamanho não representa realmente o impacto no tráfego total da rede.
Peteris 21/09
1
@ Peteris 3 pode ser um pouco alto, mas 2 certamente não é. Digamos que os 10% observados aqui sejam os mesmos na maioria dos sites regulares. Em seguida, leve em consideração que o tráfego de vídeo corresponde a 78% de todo o tráfego de vídeo. Isso significa que, para o restante dos 22% do tráfego, podemos esperar 2,2% como texto. Agora, isso é matemática de guardanapo, mas duas ordens de magnitude parecem estar onde estão.
precisa saber é o seguinte

Respostas:

53

O servidor da Web não envia "site inteiro", mas documentos solicitados pelos navegadores.

Por exemplo, quando você acessa https://www.google.com/, o navegador consulta o servidor para o documento https://www.google.com/. O servidor processa a solicitação e envia de volta algum código HTML.

Em seguida, o navegador verifica o que o servidor enviou. Nesse caso, é a página da Web em HTML; portanto, ele analisa o documento e procura scripts, folhas de estilo, imagens, fontes etc.

Nesta fase, o navegador terminou o download desse documento, mas ainda não baixou os documentos referenciados. Pode optar por fazê-lo ou ignorá-los. Navegadores comuns tentarão baixar todos os documentos referenciados para obter a melhor experiência de visualização. Se você possui um bloqueador de anúncios (como o Adblock) ou um plugin de privacidade (Ghostery, NoScript), ele também pode bloquear alguns recursos.

Em seguida, o navegador baixa os documentos referenciados, um por um, cada vez que solicita explicitamente ao servidor um único recurso. No nosso exemplo do Google, o navegador encontrará as seguintes referências, apenas para citar algumas delas:

(os arquivos reais podem ser diferentes para diferentes usuários, navegadores e sessões e podem mudar com o tempo)

Os navegadores baseados em texto não baixam imagens, arquivos Flash, vídeo HTML5 etc., portanto, eles baixam menos dados.


@NathanOsman faz um bom argumento nos comentários: Às vezes, pequenas imagens são incorporadas diretamente em documentos HTML e, nesses casos, o download delas não pode ser evitado. Esse é outro truque usado para reduzir o número de solicitações. Eles são muito pequenos, porém, caso contrário, a sobrecarga de codificação de arquivo binário na base64 é muito grande. Existem poucas imagens no Google.com.br: ( tamanho codificado em base64 / tamanho decodificado )

  • Ícone do teclado 19 × 11 (106 B / 76 B)
  • Ícone do microfone 28 × 38 (334 B / 248 B)
  • GIF transparente de 1 × 1 px (62 B / 43 B) que aparece na guia Recursos das Ferramentas de Desenvolvimento do Chrome , mas não consegui encontrá-lo na fonte - provavelmente adicionado posteriormente com JavaScript
  • Arquivo GIF corrompido de 1 × 1 px que aparece duas vezes (34 B / 23 B). Seu objetivo é um mistério para mim.
gronostaj
fonte
1
Gostei do link das imagens combinadas - esse é um truque interessante.
precisa saber é o seguinte
12
@ prateek61 Todos os principais sites usam; é realmente uma técnica emprestada de videogames. :) De fato, muitos desenvolvedores da web o chamam de " sprites CSS " ou similar (na Amazon é conhecido como "spriting", mas não sei o quão comum essa variação é).
fluffy
3
Bem, quase - é possível incorporar imagens diretamente em HTML usando o esquema de URI de dados ( data:).
Nathan Osman
Sim, se você estiver disposto a sacrificar a maior parte do conteúdo da Internet, poderá reduzir a largura de banda. Parece lógico ... não vamos esquecer que 78% da internet é o tráfego de vídeo ...
corsiKa
25

Eu suspeitaria que sim. Não acredito que os navegadores baseados em texto (por padrão) baixem recursos, como imagens ou entidades externas, como fontes (se necessário), scripts etc.

Fiz alguns testes básicos com o tcpdump tentando obter esta página da IANA ( http://www.iana.org/domains/reserved ) com o lynx e o wget, e aqui estão meus resultados (somente comandos HTTP, posso fornecer o resto se necessário).

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)

Portanto, percebo que esse não é um ótimo teste, pois wgetpode baixar recursos que um navegador pode não baixar, mas o exemplo que eu acho válido - há muito mais solicitações necessárias para renderizar conteúdo em um navegador da GUI. Como tal, os navegadores GUI geralmente causam mais tráfego de rede do que os navegadores baseados em texto.

prateek61
fonte
Eu não acho que wgetpode ser considerado um navegador. Melhor tentar com elinksou algo semelhante.
precisa saber é o seguinte
Então, eu wgetsimplesmente demonstrava todas as solicitações e respostas HTTP que serão feitas. O -pparâmetro é definido como o seguinte: -p, --page-requisites get all images, etc. needed to display HTML page.. Eu não queria usar um navegador GUI real, pois eles tendem a fazer outras solicitações que eu não queria filtrar.
prateek61
3
Eu também gosto desta resposta. A inspeção do wget foi interessante.
Paulb 22/09/14
1

Acho que os navegadores baseados em texto reduzirão significativamente a quantidade de dados transferidos, uma vez que não solicitarão todas as imagens, vídeos e vídeos interativos de alta resolução da web 2.0, incluindo o Flash e outros.

Eu sugiro que você teste isso configurando uma regra de IPtables que contará a quantidade de tráfego atingindo uma regra específica de IPtables.

Por exemplo, crie uma regra para a porta 80 + 443 com contagem de tráfego e navegue na Web com um navegador normal, redefina o contador de tabelas de IP e faça o mesmo com um navegador baseado em texto.

Lembre-se de que não é possível comparar as duas execuções 100%, pois o conteúdo dinâmico da web (anúncios e outras coisas) pode variar em cada acesso.

Sebastian Brabetz
fonte