//

How browser applications work

(with a little help from Wikipedia)

Here is our attempt to explain some of the technical details of how browser applications work.

Browser applications rely on the combination of a web browser (client - running on your computer) and a server that share processing and storage responsibilities. It may be helpful to think of this as a division of labor allowing sophisticated things to happen. The newest versions of some browser applications also work offline and then allow the client to "sync" with the server when an Internet connection is possible.

Client - The client in this case is Internet Explorer, Firefox, Safari or another browser making use of some enhancement to basic HTML. Basic HTML, the original markup language of the Internet, is pretty much passive. HTML tells the browser how to display a web page and that is pretty much it. Enhancements to basic HTML such as forms, Javascript, Java, Flash, AJAX, or other scripting languages or applets allow actions - communication with the server and alteration of parts of what the browser displays without the need to reload the entire page.

AJAX probably warrants special comment because you may encounter this term elsewhere. The word processor-like features of the blog and wiki software we described in other sections were likely possible because of AJAX. AJAX translates as asynchronous javascript and XML. Javascript is a scripting language your browser can interpret. It is something like a computer program operating within the environment provided by the browser rather than the operating system of the computer. You may be familiar with asynchronous as a term you encountered when contrasting different forms of online communication. Email is asynchronous - the sender and receiver deal with information at different points in time. Chat is synchronous - both are online at the same time. Asynchronous in this case means that the client and server are talking to each other in the background (often using an XML data format) without an apparent connection with what appears on the computer screen. This capability allows a browser application to operate smoothly, efficiently, and without risk of data loss.

An important characteristic of browsers and the enhancements mentioned here is that the operating system or hardware on which web applications function is not important. A web application will work in pretty much the same fashion whether you are working on Windows, UNIX, or Macintosh operating systems.

Server - A server is simply a computer on the Internet running specialized software. For the environment we are describing here, you might want to image a computer running several programs simulaneously. One of these programs responds to basic requests from a browser and sends requested information. This "accept request and send data" function is pretty much what server software does. More sophisticated functions requires that the server pass on requests to other programs. Just as there are ways to extend the power of the basic browser (client) with add-on scripts and plug-ins, there are also server-side scripts and programs.

A very common addition on the server side is a database. Consider that a single server associated with a given browser application may store content generated by multiple users. At a very basic level, the server must keep track of which user has generated which content. Note also that this function must operate in real time as different users work on different projects OR (and this is a powerful educational application of browser applications) several users work on the same project. Remember the previous comments about AJAX and the behind the scenes communication between the browser and the server and you may have a feel for the complexity of this constant flow of data.

To make things even more complex, it is more accurate to describe the database and the server as not directly connected. A third program/script/function serves as a bridge between the two. You may hear the term "middleware" used to a generic description of this connecting piece.

There are some capabilities in this client/server model that may not be apparent until you think a little more carefully. For example, consider the challenges to a school district of upgrading a single desktop application (e.g., a word processing program). Aside from the cost, the new software must be loaded on each machine. With browser apps, the upgrade is really made only to the server. The upgrade either runs on the server or is automatically downloaded to individual browsers when called for.

So, the server with multiple programs and your browser with its internal scripts each perform data processing and pass data back and forth to create a user experience similar to what you previously experienced when using desktop applications.

| Return |