Site News

Visi On
Win Shells
Misc GUIs

GUI Timeline
GUI Sites
Location: GUIs > Misc GUIs > Remote GUIs > The Web

Previous - Client / Server
The Web

What is the web?

The web is an Internet system designed to enable easy retrieval of documents, images, and files.

An application, commonly called a web browser, requests a document from a server on a network, the server returns the document in the form of a text file with markup tags, and the browser interprets these tags to render the document.

At least that was the original idea. A modern web browser is essentially a large programmable client / server application that has been extended to embed and interact with a number of other technologies or applications that are not really part of "the web". These include Java, Flash, ActiveX, and plug-ins such as media players.

Originally a simple web page file was just text in HyperText Markup Language (HTML) format plus several kinds of graphic files. Modern web pages also contain CSS (Cascading Style Sheets), JavaScript (not to be confused with Java), and a wider variety of graphic formats. At the server web pages are often dynamically generated with server side languages such as Perl, PHP, ASP, or Cold Fusion, which must be intermixed with HTML as well as database query languages.

In other words, it takes a lot of different stuff to make a modern web site go.

There are a variety of web browser clients in existence that are available for a number of different operating systems. The more popular ones are listed below:

Mozilla - Mozilla is a powerful, cross platform, standards compliant, modern up-to-the-minute browser that is maintained by the Mozilla Organization.
Netscape - A re-branded version of Mozilla bundled with Java and other extra plug-ins, distributed by AOL.
Opera - A modern commercial web browser from Opera software that excels at running on slower PCs and embedded hardware.
Konqueror - A fast, modern, standards compliant web browser for Unix and Linux systems from the makers of the KDE desktop.
Safari - The new standard web browser from Apple for MacOS X, based on the standards compliant rendering engine of Konqueror.
Internet Explorer - A rather out of date browser from Microsoft that is no longer supported on any OS other than Windows. It only remains popular because it is bundled with every copy of Microsoft Windows sold.

On the server side, there are also a number of web servers. The most popular ones are Apache Web Server, and Microsoft Internet Information Server.

On the server side there are some very large advantages.

  • Any operating system can run a web server and it makes no difference at all at the client end which OS the server is running.
  • Because web browsers operate by only connecting to a web server when it is requesting a document or file, web servers can handle huge numbers of users.
  • There are a variety of ways to proxy and cache web content giving improved performance.
  • Because web servers were developed as a free and open technology there is no licensing required for individual web clients to connect to a web server.
  • The Apache web server and a number of other web servers are free. (Microsoft IIS is not free - you pay for it with Windows server).
The main disadvantages to the web lie in the client software and the way web applications have to be written on the server. Each browser has its own capabilities and quirks that must be designed for. Even issues on an individual's computer with the same browser can cause problems displaying pages.

Web Documents:

Basic HTML document.

This is an example of a simple HTML document. It normally renders in a browser window, but some browsers allow other applications to embed the document viewer. Documents are usually linked together by "Hyperlinks". Hyperlinks can link to documents on the same server or on other servers. Hyperlinks can also be used to launch non-web internet services such as Telnet, Gopher, or FTP services.

Like ANSI shown in the previous section, HTML is just text with markup. These tags are interpreted by the browser to produce the rendered document. While there are some visual tools to generate simple web pages, advanced features usually require manually writing code.

Because people manually write their own code, it is very easy to produce bad HTML or HTML that fails to render for a variety of reasons.

There are specifications on how HTML should render, however these specifications often do not cover every little detail or possible interaction. In these cases it is left up to the client browser how to render.

Web applications

A web application is basically anything that is more than just a static (non changing) document. A web application can be as simple as a page with text that changes when the page is reloaded or it can be as complicated as having its own windowing system and custom controls.

When web browsers first came out, certain companies (Netscape, and then MS) boasted that their web browsers were more than just document viewers and could be used as an API for full-blown applications. This really wasn't true but that hasn't stopped people from trying.

Search engines are a useful form of web application. This screen shot is of Google, a popular search engine that searches all documents on the web. (in case you didn't already know.)

Another popular application of the web is the on-line store. This is an example of an on-line store. On typical on-line stores you can view images of products, get current prices, and purchase products.

A very popular and common application of the web is the discussion board and similar message or news boards. Hey, I can finally use a screen shot of Slashdot and it actually has a purpose!

An example of a more business related web application is Bugzilla, an application used by software developers for tracking bugs, features, and changes in applications.

Notice that the previous web applications look and work almost nothing like a traditional desktop application (although newer desktop applications are often, and incorrectly, being designed to look like web applications). Web browsers are very limited in what they can do although their capability is slowly growing.

It is not impossible to make web browser based applications that look like normal applications. But underneath the hood they are usually much more complicated than the equivalent desktop application. They often depend on the functionality of a specific browser and the bugs and limitations of the browser are often visible.

Additionally, such applications rely on browser scripting. Scripting is not reliable as many people disable scripting for a variety of reasons. Mainly to work around security problems.

As a browser is just a document renderer it does not use 3d graphics or 2d video acceleration. Most games accessible via the web are usually implemented with programs external to the browser such as Java or Flash.

Data entry forms are an application of the web that seems to be in great demand, however web browsers make very poor entry user interfaces. This is due to the design of the web and what it was intended for.

Web browsers have a very basic set of input controls with rather limited ability. These input controls were primarily designed to enable searching and were not intended for complex data entry. Input controls consist of input boxes (single line), drop down boxes (limited to one column in a drop down), text areas (multi-line with no possible limit to number of characters), check boxes, radio buttons, list boxes (single column), and buttons.

HTML pages are incapable of fancier input controls such as editable data grids. Although embedded Java or Active X applications are often used to get around this limitation.

Another problem is that field validation or field masking during data entry requires JavaScript, which may not always be enabled on the client. There can also be problems with JavaScript compatibility between different browsers.

And finally, as a performance issue, moving between fields or refreshing data usually requires loading an entirely new page.

Another popular use for the web is reporting. If the data is simple, exact formatting isn't important, and the data is to be available globally, then a web page will often suffice.

For professional reports that must be formatted exactly, a web browser will not cut it. There are just too many limitations.

  • By design, web pages are continuous documents and do not translate to multiple pages well.
  • Browsers (even the same browser), can render content differently depending on the configuration of the computer.
  • The appropriate fonts must be installed on all clients viewing the report.
  • Web browsers often add URL headings, footers, and extra margins to the printout and it is difficult if not impossible to automatically control them.
  • It is not even currently possible to set a page to automatically print landscape. (There is a w3c standard CSS command to to this, but no browser currently correctly implements it.)
  • Writing web based reports can often involve the time consuming task of manually writing reams of code involving half a dozen different languages, whereas an equivalent report on a traditional desktop based application may consist simply of quick drag-and-drop design. For the same reason, maintenance of such web reports can be very difficult and time consuming.
For static content the standard alternative is to post the document or report in Adobe Portable Document File (PDF) format. This requires Adobe's PDF viewer application that is functionally external to a web browser.

There are also a number of other applications of the web, such as web based e-mail, on-line banking, and the number one application that made the web so popular in the first place: Porn!

Next - Summary of Remote GUIs