5.1 Enhancing the Web
In its early days the web was a global hypertext system allowing documents
containing text, graphics and links to be downloaded and viewed from servers
located around the world. In this model a user requests a document (web
page) from a server, the server then sends the document to the user's
browser, which displays it. In order to provide users with a more interactive
experience a number of tools have been developed. This section discusses
some of the more popular tools currently in use.
5.2 Server Side Tools
Server side tools involve processing taking place on the web server.
5.2.1 CGI (common gateway interface)
CGI is a protocol allowing programs to be executed on a web server in
response to a request made by a browser. CGI programs have a wide variety
of uses including the processing of form input, searching an online database,
maintaining access counters etc.
Typically a user calls a CGI program from a browser, e.g. by submitting
a form. The program executes, processing any parameters it may have been
sent (e.g. form data). It may update a database or send notification to
the webmaster. Finally an HTML page is generated as output and returned
to the user's browser.
CGI programs may be written in any language that may be executed on the
web server. In practice, as they are often used to parse form input, they
are commonly written in Perl due to its powerful built-in pattern matching
CGI offers an inexpensive means of providing server side functionality.
Perl interpreters are available for free and are often available as standard
on web servers. Numerous free CGI scripts may be found on the web at sites
such as The CGI Resource Index 
and Matt's Script Archive .
However, because server side execution involves potential security risks
some hosting services are reluctant to offer CGI facilities.
5.2.2 ASP (Microsoft Active Server Pages)
Active Server Pages (ASP) is a server side technology from Microsoft for
dynamic creation of web pages. ASP "pages" are text files consisting
of HTML code interspersed with ASP commands, which may be in one of several
languages including VBScript, Jscript or PerlScript. The most common language
for ASP pages is VBScript.
The current time is
<% Response.Write Time() %>
Fig 5.1 A simple ASP "page"; source Mitchell
& Atkinson 
When a client requests an ASP page from the server the commands are executed
by the server's scripting engine. The output is merged with the HTML part
of the ASP file and sent to the client in the form of a standard HTML
file. The client does not see the script.
ASP provides powerful features for accessing a server side database and
is frequently used for this purpose e.g. in e-commerce solutions. ASP
is supported by default on Microsoft web servers, including Personal Web
Server, which is available for free with Windows 95, 98 and NT Workstation.
Various third party products allow ASP to be run on other web servers
(see 5.2.4 below).
Microsoft  recommends that,
where possible, users of its IIS web server should "migrate CGI applications
to ASP, to take advantage of improved performance and the simplified development
5.2.3 Cold Fusion
Cold Fusion is an application server. Originally developed by Allaire
the product is now part of the Macromedia portfolio. Cold Fusion works
alongside the web server. When a request is received for a Cold Fusion
(.cfm) file it is passed to Cold Fusion for processing. Cold Fusion outputs
a pure HTML file, which is sent to the client by the web server. Description
source: irt.org .
Like ASP, Cold Fusion allows script embedded in HTML to access a server
side database and return the results in the form of dynamically generated
HTML pages. However, according to ZDNet 
Cold Fusion has the advantage of being similar to HTML due to it being
a tagged language. It is, however, relatively expensive with Amazon.com
quoting a price of : $4,911.99 for ColdFusion Server 4.5 Enterprise --
Macromedia; Windows 2000 / NT (June 19, 2001).
<!--- This query selects
all members from the Members table in the irt datasource --->
<title>Members of irt.org</title>
<!--- Here's all members
output nicely into a table --->
Fig 5.2 An example of a Cold Fusion .cfm file; source
PHP is a recursive acronym for PHP: Hypertext Preprocessor. PHP is a scripting
language embedded within HTML documents and executed on the server side.
To use PHP the web server must support PHP and be configured to pass all
.php files to PHP.
PHP peforms a similar function to ASP and Cold Fusion. The PHP Group's
FAQ (Frequently Asked Questions) list 
provides a comparison.
ASP is easier to learn for Visual Basic programmers and is enabled by
default on Microsoft's Internet Information Server (IIS), it is therefore
likely to be more widely supported, or easier to get working if the developer
is also the webmaster. However, ASP is native to IIS, thus limiting its
availability (although products such as Halcyon Software's Instant ASP
and Chili!Soft's Chili!ASP allow ASP to run on a variety of other web
servers). Furthermore, according to the PHP Group FAQ, "ASP is said
to be a slower and more cumbersome language than PHP", and "less
stable as well".
Compared to Cold Fusion PHP is "commonly said to be faster and more
efficient for complex programming tasks and trying out new ideas"
and is "generally referred to as more stable and less resource intensive".
Additionally "PHP runs on almost every platform there is; Cold Fusion
is only available on Win32, Solaris, Linux and HP/UX". However Cold
Fusion "has better error handling, database abstraction and date
parsing", an "excellent search engine", and "has a
better IDE and is generally easier to get started with". It should
also be stated that PHP is Open Source (see OpenSource.org )
<?php echo "Hello World<p>"; ?>
Fig 5.3 A simple PHP file; source The PHP Group 
5.3 Client Side Tools
Client side tools involve processing taking place on the client (i.e.
the user's computer). Client side tools offer faster execution, due to
processing taking locally, and reduced server load.
agreement with Sun. Source Woodger Computing Inc. .
of uses e.g. validating form input prior to submission, providing user
feedback such as rollover effects and creating simple animation such as
scrolling text banners to display latest news etc.
to provide Dynamic HTML (DHTML), a means of changing the contents of a
web page displayed in a browser in response to user interaction. DHTML
is invaluable in providing user feedback e.g. on educational sites.
web at sites such as Dynamic Drive 
that a resourceful web developer can, on many occasions, cannibalise the
work of others.
different company's browsers, and indeed different versions of the same
features. The problem is particularly pronounced with DHTML as this feature
is implemented in entirely different ways in the two major browsers, namely
Microsoft Internet Explorer and Netscape. The developer is faced with
the choice of developing different versions of pages for different browsers
or, given that Internet Explorer is now hugely dominant (see
Appendix A), developing only for Explorer.
5.3.2 Java applets
Java applets are programs written in Sun Microsystems' Java specifically
for execution in a web browser. The Java language is designed to be cross-platform
enabling applets to be run on any computer for which a Java Virtual Machine
and must be downloaded separately from the HTML before execution can begin.
In the words of its creator, Macromedia ,
Flash "is the key to designing and delivering low-bandwidth animations,
presentations, and Web sites. It offers scripting capabilities and server-side
connectivity for creating engaging applications, Web interfaces, and training
Over the past year or so Flash movies have become an increasingly common
vehicle for delivering sound, animation and interactivity on web sites.
Its popularity among web developers is most likely due to two reasons:
- its use of vector graphics results in very small file sizes meaning
that Flash content can be downloaded with minimal delay;
- latest generation browsers have the Flash player built-in, i.e. they
are able to play Flash movies without the need for plug-in software.
Used intelligently Flash represents a powerful tool in the developer's
armoury. The Showcase on Macromedia's website 
provides some excellent examples of the effective deployment of Flash.
However, web usability expert Nielsen 
claims "About 99% of the time, the presence of Flash on a website
constitutes a usability disease". This is because Flash movies cannot
utilise familiar browser features such as the Back button and Find option.
Furthermore, Nielsen considers Flash tends to make the user experience
more passive by removing control from the viewer. Indeed, the fact that
many Flash enabled sites now offer a "skip intro" option suggests
they were created more to demonstrate the designer or technology's capabilities
than to add value for the user.
Plug-ins are programs that extend web browser functionality. Web browsers
are designed to display files of a limited range of types, e.g. HTML,
JPG and GIF images etc. When a browser encounters a file type it cannot
display e.g. video or streaming audio, it calls the appropriate plug-in.
Plug-ins can often be downloaded for free, but content requiring the use
of a plug-in should be used judiciously as viewers will often not wish
to be bothered with lengthy downloads and will simply move to another
site. Some of the more common plug-ins are described below, descriptions
are taken from Netscape .
- Apple Quicktime for "QuickTime animation, music, MIDI, audio,
video, and VR panoramas and objects"
- Adobe Acrobat Reader for displaying Adobe PDF (Portable Document Format)
files. This format is often used to ensure a document appears in exactly
the format it was published, it is usually good practice to provide
an HTML version for the benefit of users without the plug-in.
- Macromedia Shockwave for "interactive games, multimedia, graphics,
and streaming audio".
- RealNetworks RealPlayer for "streaming audio, video, animations,
and multimedia presentations".
5.3.5 ActiveX Controls
ActiveX is a Microsoft technology supporting the reusability of software
components. ActiveX controls are ActiveX components designed to be contained
within a web page. ActiveX controls may be created in a range of languages
including Visual Basic, Visual C++ and Visual J++ (Microsoft's implementation
of Java). Navarro and Khan  describe them
as "a cross between a plug-in and a Java applet". Like Java
applets ActiveX controls are downloaded and executed on the client computer,
like plug-ins they are saved on the client's hard disk. ActiveX controls
are supported by Internet Explorer versions 3.0 and higher. A plug-in
is required to view ActiveX controls in Netscape browsers. Source: Web
Developer's Virtual Library .
5.4 Web Site Utilities
Webmasters wishing to add features or functionality to their sites can
choose from a vast range of ready made utilities that can simply be pasted
into their HTML code, for free (in practice there is usually a requirement
to display a small graphic linking back to the provider). Sites such as
Bravenet  offer tools such
as guest books, forums, live chat, CGI form processing, customized e-mail
services, live news feeds, site-specific search engines and mailing lists.
Employed judiciously these utilities can provide added value to a site
and give users an incentive to re-visit. As such they are a valuable resource
for those starting a website on a low budget. Care should be taken to
ensure that any such utilities used are both in keeping with the site's
purpose and do not overshadow it.
5.5 XML (Extensible Markup Language)
HTML, the standard language for creating web pages, consists of tags such
as <H1> (level 1 header), <P> (paragraph), <B> (bold)
etc. These tags inform the browser how to display their content, however
they provide no information about it.
One of the major difficulties in using the web is that of finding relevant
information among the billions of pages it is composed of. XML (Extensible
Markup Language) provides web authors with the capability to use, and
define, more descriptive tags. For example, a website of photographs might
include tags for <subject>, <location>, <author>, <format>
<!-- Business letter formatted with XML -->
<!DOCTYPE letter (View Source for full doctype...)>
<address1>123 Main St.</address1>
<flag id="P" />
<address2>15 Any Ave.</address2>
<flag id="B" />
<paragraph>It is our privilege to inform you about our new
database managed with XML. This new system will allow you to reduce
the load of your inventory list server by having the client machine
perform the work of sorting and filtering the data.</paragraph>
<paragraph>Sincerely, Mr. Doe</paragraph>
Fig 5.4 An example of an XML document; source Deitel et
XHTML combines XML with HTML 4. It is likely that it will become the standard
language of the web as developers endeavour to get their sites recognized
by search engines and agents.