What lies beneath

Browsers act as intermediaries between us and the e-goodies that the Web has to offer

By Yasir Suleman Memon


As Web applications replace their desktop counterparts, the market for Web browsers is no longer limited to internet users. Browsers are gradually expanding into private networks and corporate intranets. It is not trite to predict that the battleground for the next browser war may well be the desktop. Industry pundits, who predicted the end of Browser Wars when Microsoft overpowered Netscape in the late 1990s, were proven wrong following the release of Mozilla’s Firefox. Just as the battle between Godzilla and Rodan caused collateral damage to Tokyo, Browser Wars are not particularly good for Web developers as they have to fine tune and adjust their code for each Web browser.

Some industry circles blame Microsoft Internet Explorer for fuelling the conflict by failing to conform to the Web standards set by the The World Wide Web Consortium (W3C). The situation is further aggravated by the fact that Microsoft is able to ship Internet Explorer with all versions of Windows thus raising its market share significantly. Quality conscious IT companies targeting a large user base have to ensure that their code would run swiftly on all browsers. Many projects developed by freelancers failed in quality tests when run on multiple Web browsers.

The problem comes from the fact that all the Web browsers presumably show the content in the same fashion, which in reality is not so. Even though W3C defines non-proprietary Web standards for just about everything that affects the way content is displayed online, there is still enough room for browsers to function differently for the same piece of written code. In order to understand the reason behind different Web browsers displaying content differently, varying loading speeds, security and compatibility issues, it is important to dissect the workings of a Web browser.

As shown in the diagram, a Web browser typically has three main components (Controller, Clients and an Interpreters/Layout Engine) that handle the entire operation from user input to network request/response, content processing and finally the display of the processed webpage.

Controller

The controller inside a browser can be easily compared to the human brain. It is responsible for the overall coordination and communication of commands within the browser. It accepts requests from users (in the form of clicks and Web requests), passing them on to the relevant client (for example, HTTP Client) to fetch the content which is then passed on to the Layout Engine to prepare a graphical layout to present to the user.

Clients

Clients have a relatively more functional role. They are responsible for opening up relevant networked sockets to the target Web servers (where the content may be hosted) from which streams of data are sent (for example, posting a filled Web form) or received. The client does not perform any processing on the data and simply transfers it to the controller. It is the controller’s responsibility to ask the Layout Engine to process the data.

The controller may create multiple virtual clients of the same type in order to speed up fetching or posting of data from Web servers. At times it may be observed, when downloading multiple files in Internet Explorer, the browser does not download any more than two files concurrently. This is because a setting in Internet Explorer allows a maximum of two concurrent threads (virtual clients) per server (for example, yahoo.com). To bypass this registry restriction there are several tweaks are available on the internet. However, the CPU resource usage increases as the concurrent connections per server (or overall) is increased. In Firefox this setting may be changed by typing “about:config” in the address bar.

Layout engine

As the name suggests, the layout engine is responsible for converting the colourless text code it receives from the controller into colourful webpages comprising of tables, pictures, backgrounds, bullets, headings and more. It is this very part of the Web browser that brings about the difference in the way content in presented in different Web browsers.

Since the layout engines are required to conform with the standards laid out by W3C, it is common to build layout engines that are re-usable in different Web browsers and even other software that require the capability of displaying webpages.
Browser usage as of January 2006
Internet Explorer 82.83%
Firefox 12.61%
Netscape 2.33%
Mozilla 0.78%
Other 1.45%



The term “layout engine” only reached popular usage when these became easily separable from the browser. For example Trident, the layout engine from Internet Explorer, is used by many applications on the Microsoft Windows platform to render HTML, as in the mini-browser in Winamp. The Mozilla project’s open-source layout engine, Gecko, is used by a variety of products derived from the Mozilla codebase, including the Firefox Web browser, the Thunderbird e-mail client, and the Seamonkey application suite.

How does Microsoft maintain a 83 per cent market share in the Web browser market?

One may say Internet Explorer is an excellent browser and Microsoft has been successful in acquiring market shares due to innovative solutions. Firefox fans disagree. Microsoft uses a chain of dependencies to force the market share of one of its products into another, creating an endless monopoly.
 

Some of the most common layout engines in use today include:
 Layout Engine Used by
Trident Internet Explorer
Gecko Firefox, Netscape, Mozilla,
Thunderbird, Seamonkey
applications
Presto Opera
WebCore Safari
KHTML Konqueror
Tasman Internet Explorer for Mac


The way Microsoft maintains this 83 per cent market share is by using the Trident Layout Engine component linked with its application in most of its desktop applications. Today Internet Explorer, Windows Media Player, Microsoft Office, MSN Messenger, MSDN Help and many more products depend on the Trident Layout Engine. The interesting part is Internet Explorer must be installed in order for the user to run any of the above mentioned software that depends on the Trident Layout engine. The re-usability of the layout engines is obvious from the advertisement boxes of MSN Messenger, Help side-bar in MS Office, welcome screen in Yahoo! Messenger and even any internet access applications made in Microsoft’s programming languages such as Visual Basic.

Each of the layout engines listed in the table may act slightly different when drawing tables, formatting text, images or displaying other media. Since Layout Engines themselves are proprietary, the owners also accommodate additional functionality that might not be a W3C requirement but may be useful in their application. In case of the Trident engine, many non-W3C HTML tags, VB-Script and other proprietary support was added. This support coupled with the fact that many users were forced to have Internet Explorer installed changed the dynamics of Web programming towards Microsoft technology on most of the Microsoft platforms. As a result, one of the largest market share holders at one time: Netscape was forced out of the market

  The Site
  World Wide Web Consortium

www.w3.org




 

 



     


Top

SPIDER
2nd, Floor Haroon House, Dr. Ziauddin Ahmed Road, Karachi - 74200. PAKISTAN
Ph: 111-444-777 Ext. 3377
© Copyright 1998 - 2005
editor@spider.tm advt@spider.tm