do-text-based-browsers-reduce-network-traffic-00

There is no doubt that today’s web pages are full of rich content and use more bandwidth to fully load up, but would using a text-based browser instead of a GUI-based one make a significant difference in reducing network traffic? Today’s SuperUser Q&A post has the answers to a curious reader’s question.

Today’s Question & Answer session comes to us courtesy of SuperUser—a subdivision of Stack Exchange, a community-driven grouping of Q&A web sites.

Lynx Browser screenshot courtesy of Wikipedia.

The Question

SuperUser reader Paulb wants to know if text-based browsers can actually reduce network traffic:

Do text-based browsers such as Lynx, Links, and ELinks consume less bandwidth than GUI-based browsers like Firefox, Chrome, and Internet Explorer?

I am guessing that there is no reduction in traffic. My rationale for this is that I think a text-based browser downloads the entire page as it is offered by the server. Any streamlining or reduction of page widgetry is done locally.

Maybe there is some reduction in traffic as most text-based browsers will not execute page scripts or flash files, which might cause more traffic.

Can text-based browsers make a noticeable difference in reducing network traffic?

The Answer

SuperUser contributor gronostaj has the answer for us:

The web server does not send the entire website, but documents that browsers request. For example, when you access google.com, the browser queries the web server for the document google.com. The web server processes the request and sends back some HTML code.

Then the browser checks what the web server has sent. In this case, it is an HTML webpage, so it parses the document and looks for referenced scripts, style sheets, images, fonts, etc.

At this stage, the browser has finished downloading the original document, but has still not downloaded the referenced documents. It can choose to do so or skip downloading them. Regular browsers will try to download all referenced documents for the best viewing experience. If you have an ad blocker (like Adblock Plus) or a privacy plugin (like Ghostery or NoScript), then it may block some resources too.

Then the browser downloads the referenced documents one by one, each time asking the web server explicitly for a single resource. In our Google example, the browser will find the following references (just to name a few of them):

The actual files may be different for different users since browsers and sessions may change over time. Text-based browsers do not download images, Flash files, HTML5 video, etc., so they download less data.

@NathanOsman makes a good point in the comments. Sometimes small images are embedded directly in HTML documents and in those cases, downloading them cannot be avoided. This is another trick used to reduce the number of requests. They are very small though, otherwise the overhead of encoding a binary file in base64 is too big. There are few such images on google.com (base64 encoded size/decoded size):

  • 19×11 pixel Keyboard Icon (106 Bytes/76 Bytes)
  • 28×38 pixel Microphone Icon (334 Bytes/248 Bytes)
  • 1×1 pixel Transparent GIF (62 Bytes/43 Bytes) It shows up in Google Chrome’s Dev Tools Resources tab, but I could not find it in the source code (probably added later with JavaScript).
  • 1×1 pixel Corrupted GIF file that appears twice. (34 Bytes/23 Bytes) Its purpose is a mystery to me.

Have something to add to the explanation? Sound off in the comments. Want to read more answers from other tech-savvy Stack Exchange users? Check out the full discussion thread here.