Communication services provide connectivity between clients (most likely a PC or a Macintosh running a web browser) and a server over the Internet or, more accurately, a TCP/IP connection. The most common way of interaction is through a web browser, which uses a protocol called HTTP. HTTP can handle multimedia communication services such as audio, video, and data. Tools like Oracle Portal take advantage of these features to seamlessly store and retrieve almost any type of data from an Oracle database. For the purposes of Oracle web development, the communication services are the web server.
Starting with Oracle9 i Application Server Release 1, Oracle has used Apache as its web server, referred to in the Oracle documentation as the HTTP Server. Apache has a large base of knowledge available for its administration, as it is the most popular web server used today. A quick search of a popular technical book site turned up no less than 35 books related to Apache administration and configuration. By standardizing on the Apache web server, Oracle has provided a great amount of flexibility to administrators and organizations that wish to move their Oracle-based applications to the Web.
The designers of Apache were smart enough to know that there was no way they could anticipate every conceivable way people might want to use their web server, so they designed it with an open -ended interface that incorporates a modular architecture through which additional functionality can be added. These enhancements are commonly referred to as mods (modules) as they all begin with the prefix mod_. Modules may be linked statically to the web server or may be loaded dynamically at run time using Dynamic Shared Object (DSO) support on Unix or Dynamically Linked Libraries (DLLs) on Windows. The API for these modular components is based on the C programming language. Table 1-2 lists the mods that come with the Apache server provided with Application Server 10 g .
Module | Functionality Provided to the Apache Server | Provided by Oracle? | Supported by Oracle? |
---|---|---|---|
Mod_access | The directives provided by mod_access are used in <Directory>, <Files>, and <Location> sections as well as .htaccess files to control access to particular parts of the server. | No | Yes |
mod_actions | The Action directive lets you run CGI scripts whenever a file of a certain type is requested . The Script directive lets you run Common Gateway Interface (CGI) scripts whenever a particular method is used in a request. | No | Yes |
mod_alias | The directives contained in this module allow for manipulation and control of Uniform Resource Locators (URLs) as requests arrive at the server. The Alias and ScriptAlias directives are used to map between URLs and filesystem paths. | No | Yes |
mod_asis | This module provides the handler send-as-is, which causes Apache to send the document without adding most of the usual HTTP headers. | No | Yes |
mod_auth | This module allows the use of HTTP Basic Authentication to restrict access by looking up users in plain text password and group files. | No | Yes |
mod_auth_anon | This module does access control in a manner similar to anonymous File Transfer Protocol (FTP) sites; i.e . , have a magic user id anonymous and the e-mail address as a password. | No | Yes |
mod_auth_db | This module provides an alternative to DBM files for those systems that support DB (Berkeley database files) and not DBM (indexed Berkeley database files). | No | No |
mod_auth_dbm | This module provides for HTTP Basic Authentication, where the usernames and passwords are stored in DBM-type database files. | No | No |
mod_auth_digest | This is an updated version of mod_digest using MD5 authentication (experimental). | No | No |
mod_autoindex | This module provides for automatic directory indexing. | No | Yes |
mod_cern_meta | This module emulates the CERN HTTPD Meta file semantics. Meta files are HTTP headers that can be output in addition to the normal range of headers for each file accessed. | No | No |
mod_cern_headers | This module allows reverse proxies that terminate Secure Sockets Layer (SSL) connections in front of Oracle HTTP Server to transfer information regarding SSL connection to Oracle HTTP Server. | No | Yes |
mod_cgi | Any file that has the mime type application/x-httpd-cgi or handler cgi-script is treated as a CGI script, and run by the server, with its output being returned to the client. | No | Yes |
mod_define | This module provides support for Distributed Authoring and Versioning. | No | Yes (Unix only) |
mod_digest | This module implements an older version of the MD5 Digest authentication; use mod_auth_digest. | No | Yes |
mod_dir | The DirectoryIndex directive sets the name of a file written by the user, typically called index.html, used as the index of a directory. | No | Yes |
mod_dms | This module enables you to monitor the performance of site components with Oracle s Dynamic Monitoring Service (DMS). | Yes | Yes |
mod_env | This module allows for control of the environment that will be provided to CGI scripts and SSI pages. | No | Yes |
mod_example | The files in the src/modules/example directory under the Apache distribution directory tree are provided as an example to those that wish to write modules that use the Apache API. | No | No |
mod_expires | This module provides for the generation of Expires HTTP headers (an instruction to the client about the document s validity and persistence) according to user-specified criteria. | No | Yes |
mod_fastcgi | This module routes requests to fastcgi modules. | No | Yes |
mod_headers | This module provides for the customization of HTTP response headers. | No | Yes |
mod_imap | This module processes .map files, thereby replacing the functionality of the imagemap CGI program. | No | No |
mod_include | This module provides a handler, which will process files before they are sent to the client. | No | Yes |
mod_info | This module provides a comprehensive overview of the server configuration, including all installed modules and directives in the configuration files. | No | Yes |
mod_isapi | This module implements the Internet Server extension API. It allows Internet server extensions (e.g., ISAPI DLL modules) to be served by Apache for Windows. | No | No |
mod_jserv | This module converts HTTP requests to servlet requests, returning HTTP responses to the client. It is disabled by default in the Oracle HTTP Server distribution; use mod_oc4j instead. | No | Yes |
mod_log_agent | This module provides for logging of user agents . It s deprecated; use mod_log_config instead. | No | No |
mod_log_config | This module provides for logging of the requests made to the server, using the Common Log Format or a user-specified format. | No | Yes |
mod_log_referer | This module provides for logging of the documents that reference documents on the server. It s deprecated; use mod_log_config instead. | No | Yes |
mod_mime | This module is used to determine various bits of meta information about documents. The directives AddCharset, AddEncoding, AddHandler, AddLanguage, and AddType are all used to map file extensions onto the meta-information for that file. | No | Yes |
mod_mime_magic | This module provides for determining the MIME type of a file by looking at a few bytes of its contents. It is intended as a second line of defense for cases that mod_mime can t resolve. | No | Yes |
mod_mmap_static | This module maps a list of statically configured files into memory. It is an experimental module and should be used with care. | No | No |
mod_negotiation | This module provides for content selection that s defined as the selection of a document that best matches the client s capabilities. | No | Yes |
mod_oc4j | This module routes requests to the OC4J instances. | Yes | Yes |
mod_onsint | This module provides integration support with Oracle Notification Service (ONS) and Oracle Process Manager and Notification Server (OPMN). | Yes | Yes |
mod_oprocmgr | This module provides process management and load balancing services to Jserv processes. It is provided for legacy users of Jserv. Jserv is disabled by default in the Oracle HTTP Server configuration. Oracle recommends using OC4J and mod_oc4j (which are enabled by default). | Yes | Yes |
mod_oradav | This module provides enhancements to mod_dav to allow Oracle DB as a backing store. | Yes | Yes |
mod_ossl | This module enables strong cryptography for Oracle HTTP Server. It is very similar to mod_ssl; mod_ossl is based on the Oracle implementation of SSL, which supports SSL, version 3. | Yes | Yes |
mod_osso | This module supports single sign-on across sites and applications. | Yes | Yes |
mod_perl | This module runs perl programs. | No | Yes |
mod_plsql | This module routes requests to pl/sql programs in databases; it enables requests to database stored procedures to be made from the browser. | Yes | Yes |
mod_proxy | This module implements proxying capability for FTP, CONNECT (for SSL), HTTP/0.9, HTTP/1.0, and (as of Apache 1.3.23) HTTP/1.1. | No | Yes |
mod_rewrite | This module uses a rule-based rewriting engine (based on a regular-expression parser) to rewrite requested URLs on the fly. | No | Yes |
mod_setenvif | This module allows you to set environment variables according to whether different aspects of the request match regular expressions you specify. | No | Yes |
mod_so | On selected operating systems, this module can be used to load modules into Apache at run time via the Dynamic Shared Object (DSO) mechanism, rather than requiring a recompilation; mod_so is experimental. | No | Yes |
mod_speling | This module attempts to correct misspellings of URLs that users might have entered by ignoring capitalization and allowing up to one misspelling. | No | Yes |
mod_status | This module allows server administrators to find out how well their servers are performing. A HTML page is presented that gives the current server statistics in an easily readable form. | No | Yes |
mod_unique_id | This module provides a magic token for each request, which is guaranteed to be unique across all requests under very specific conditions. The unique identifier is even unique across multiple machines in a properly configured cluster of machines. | No | Yes |
mod_userdir | This module provides for user-specific directories. The UserDir directive sets the real directory in a user s home directory to use when a request for a document for a user is received. | No | Yes |
mod_usertrack | This module uses cookies to provide for a clickstream log of user activity on a site. Oracle Application Server 10 g contains a service called Clickstream Intelligence that enhances this functionality. | No | Yes |
mod_vhost_alias | This module creates dynamically configured virtual hosts by allowing the IP address and/or the Host: header of the HTTP request to be used as part of the pathname to determine what files to serve. | No | Yes |
A page provided by Oracle in the Enterprise Manager web site called the Module Metrics page lists various Apache modules and how often they have been accessed since the startup of the HTTP Server (see Figure 1-5).
The mods provided by Oracle will be discussed at various times in this book. For more information about Apache, go to http://www.apache.org.