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

27

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

Estou adivinhando nenhuma redução no tráfego.
Justificativa: Eu acho que um navegador baseado em texto baixa a página inteira como é oferecido pelo servidor. Qualquer otimização ou redução do widget da página é feito localmente.

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

    
por Paulb 20.09.2014 / 12:25

3 respostas

53

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

Por exemplo, quando você acessa o link , o servidor de consultas do navegador exibe 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. Neste caso, é uma página HTML, por isso, analisa o documento e procura por scripts referenciados, folhas de estilo, imagens, fontes, etc.

Neste estágio, o navegador finalizou o download desse documento, mas ainda não fez o download de documentos referenciados. Pode optar por fazê-lo ou ignorá-los. Navegadores regulares tentarão baixar todos os documentos referenciados para melhor experiência de visualização. Se você tem 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 faz o download dos documentos referenciados um por um, cada vez perguntando ao servidor explicitamente por um único recurso. Em nosso exemplo do Google, o navegador encontrará as seguintes referências, apenas para citar algumas delas:

  • link (logotipo do Google)
  • link (ícone do teclado)
  • link (algumas imagens combinadas, truque usado para reduzir o número de solicitações do navegador)

(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 em Flash, vídeos em HTML5 etc., fazendo o download de menos dados.

@NathanOsman faz uma boa observação 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, embora, caso contrário, a sobrecarga de codificar o arquivo binário em base64 é muito grande. Existem poucas imagens no Google.com: ( tamanho codificado base64 / tamanho decodificado )

    ícone de teclado
  • 19 × 11 (106 B / 76 B)
  • ícone de microfone
  • 28 × 38 (334 B / 248 B)
  • GIF transparente de 1 x 1 px (62 B / 43 B) que aparece na guia Recursos do Chrome Dev Tools, mas não consegui encontrá-lo na fonte - provavelmente adicionado posteriormente com JavaScript
  • 1 x 1 px corrompido arquivo GIF que aparece duas vezes (34 B / 23 B). Sua finalidade é um mistério para mim.
por 20.09.2014 / 15:35
25

Eu suspeito que eles fazem. Eu não acredito que navegadores baseados em texto (por padrão) baixem recursos como imagens ou entidades externas, como fontes (se necessário), scripts, etc.

Eu fiz alguns testes básicos com o tcpdump tentando obter essa página da IANA ( link ) com o lynx e depois o wget, e aqui estavam meus resultados (somente comandos HTTP, eu 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)

Por isso, percebo que esse não é um ótimo teste, pois wget pode fazer download de recursos que um navegador pode não fazer download, mas o exemplo que acho é válido - há muito mais solicitações necessárias para renderizar conteúdo em um navegador da GUI. Dessa forma, os navegadores da GUI geralmente causam mais tráfego de rede do que os navegadores baseados em texto.

    
por 20.09.2014 / 15:14
1

Acho que os navegadores baseados em texto reduzirão significativamente a quantidade de dados transferidos, já que não solicitarão todas essas imagens de alta resolução, vídeos e material interativo interativos da web 2.0 (Flash e outros).

Sugiro que você apenas teste isso configurando uma regra de IPtables que contará a quantidade de tráfego que atinge uma regra de IPtables específica.

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 IPtables Counter e faça o mesmo com um navegador baseado em texto.

Lembre-se de que você não pode comparar as duas execuções em 100% porque o webcontent dinâmico (anúncios e outras coisas) pode variar em cada acesso.

    
por 22.09.2014 / 16:44