|
What lies beneath Browsers act as intermediaries between us and the e-goodies that the Web has to offer 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.
|
|||||||||||||||||||||||||||||||||||