Adobe ColdFusion 8

About Internet applications and web application servers

With ColdFusion, you develop Internet applications that run on web application servers.

About web pages and Internet applications

The Internet has evolved from a collection of static HTML pages to an application deployment platform. First, the Internet changed from consisting of static web pages to providing dynamic, interactive content. Rather than providing unchanging content where organizations merely advertise goods and services, dynamic pages enable companies to conduct business ranging from e-commerce to managing internal business processes. For example, a static HTML page lets a bookstore publish its location, list services such as the ability to place special orders, and advertise upcoming events like book signings. A dynamic website for the same bookstore lets customers order books online, write reviews of books they read, and even get suggestions for purchasing books based on their reading preferences.

More recently, the Internet has become the underlying infrastructure for a wide variety of applications. With the arrival of technologies such as XML, web services, J2EE (Java 2 Platform, Enterprise Edition), and Microsoft .NET, the Internet has become a multifaceted tool for integrating business activities. Now, enterprises can use the Internet to integrate distributed activities, such as customer service, order entry, order fulfillment, and billing.

ColdFusion is a rapid application development environment that lets you build dynamic websites and Internet applications quickly and easily. It lets you develop sophisticated websites and Internet applications without knowing the details of many complex technologies, yet it lets advanced developers take advantage of the full capabilities of many of the latest Internet technologies.

About web application servers

To understand ColdFusion, you must first understand the role of web application servers. Typically, web browsers make requests, and web servers, such as Microsoft Internet Information Server (IIS) and the Apache web server, fulfill those requests by returning the requested information to the browser. This information includes, but is not limited to, HTML and Adobe Flash files.

A web server's capabilities are limited because all it does is wait for requests to arrive and attempt to fulfill those requests as soon as possible. A web server does not let you do the following tasks:

  • Interact with a database, other resource, or other application.
  • Serve customized information based on user preferences or requests.
  • Validate user input.

A web server, basically, locates information and returns it to a web browser.

To extend the capabilities of a web server, you use a web application server, a software program that extends the web server's capabilities to do tasks such as those in the preceding list.

How a web server and web application server work together

The following steps explain how a web server and web application server work together to process a page request:

  1. The user requests a page by typing a URL in a browser, and the web server receives the request.
  2. The web server looks at the file extension to determine whether a web application server must process the page. Then, one of the following actions occur:
    • If the user requests a file that is a simple web page (often one with an HTM or HTML extension), the web server fulfills the request and sends the file to the browser.
    • If the user requests a file that is a page that a web application server must process (one with a CFM, CFML, or CFC extension for ColdFusion requests), the web server passes the request to the web application server. The web application server processes the page and sends the results to the web server, which returns those results to the browser. The following image shows this process:

Because web application servers interpret programming instructions and generate output that a web browser can interpret, they let web developers build highly interactive and data-rich websites, which can do tasks such as the following:

  • Query other database applications for data.
  • Dynamically populate form elements.
  • Dynamically generate Flash application data.
  • Provide application security.
  • Integrate with other systems using standard protocols such as HTTP, FTP, LDAP, POP, and SMTP.
  • Create shopping carts and e-commerce websites.
  • Respond with an e-mail message immediately after a user submits a form.
  • Return the results of keyword searches.