The Internet is a decentralized global network connecting large numbers of client and server computers. The world wide web (WWW) is a system of Internet connected server computers, referred to as Web servers, that support the storage and transmission of hypertext markup language (HTML) encoded documents, referred to as Web pages. An Internet connected computer, if executing user agent and related software, can function as a Web client, or if executing Web server and related software, can function as a Web server. A user agent is also referred to as a Web browser. The related software performs operating system and communication protocol functionality required to operate as a Web client or server.
Historically, the design and implementation of a user agent, a Web server and related software has undergone rapid change and evolution. Various designs, implementations and versions of user agent, Web server and related software have been developed and provided from a variety of sources over time. Users of Web server, user agent and related software vary with respect to which combination of brands and versions of software they choose to employ and how frequently they upgrade to newer versions of software. Some users continue to use older versions of software long after upgrades are available.
As a result, while in operation, a user agent program typically interfaces with a variety of different brands and versions of Web server programs and a Web server program typically interfaces with a variety of different brands and versions of user agent programs. Programmed functionality that functions correctly between a particular Web server and a particular user agent, may not function correctly between the particular Web server and another user agent or between another Web server and the particular user agent or between another Web server and another user agent.
The subset of functionality that can be expected to interoperate correctly between a variety of Web servers and user agents is limited to a not so clearly defined common denominator of interoperating Web server and user agent functionality, exercised between a limited set of user agents and Web servers from various sources. Furthermore, the boundaries of this common denominator are uncertain and frequently subject to change. The reliability and portability of interoperating Web server and/or user agent functionality residing outside of this common denominator is less certain.
To complicate matters, the popularity of the Web is placing upward pressure upon the size and complexity of Web accessible applications and their associated Web pages. New ways of implementing Web server and user agent functionality are needed to accommodate more complex Web applications and larger Web pages in an efficient, reliable and portable manner across a variety of user agent and Web server configurations.