From: Joshua Slive Date: Sat, 27 Jul 2002 15:37:03 +0000 (+0000) Subject: New XML. X-Git-Tag: 2.0.40~103 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fe687a82c84d013239363e735cfa36c094dcad98;p=apache New XML. Submitted by: Vincent de Lau git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@96211 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/docs/manual/env.html.en b/docs/manual/env.html.en index 6b0b273479..73fd74493b 100644 --- a/docs/manual/env.html.en +++ b/docs/manual/env.html.en @@ -1,20 +1,8 @@ - - - - - - - Environment Variables in Apache - - - - - - -

Environment Variables in Apache

- +Environment Variables in Apache- Apache HTTP Server
[APACHE DOCUMENTATION]

Apache HTTP Server Version 2.0

Environment Variables in Apache

The Apache HTTP Server provides a mechanism for storing information in named variables that are called environment variables. This information can be used to control various @@ -22,7 +10,7 @@ also used as a mechanism to communicate with external programs such as CGI scripts. This document discusses different ways to manipulate and use these variables.

- +

Although these variables are referred to as environment variables, they are not the same as the environment variables controlled by the underlying operating system. @@ -34,260 +22,219 @@ server itself runs, you must use the standard environment manipulation mechanisms provided by your operating system shell.

- - -
- -

Setting Environment - Variables

- - - - - - - -
Related Modules
-
- mod_env
- mod_rewrite
- mod_setenvif
- mod_unique_id
-
Related Directives
-
- BrowserMatch
- BrowserMatchNoCase
- PassEnv
- RewriteRule
- SetEnv
- SetEnvIf
- SetEnvIfNoCase
- UnsetEnv
-
- -

Basic Environment Manipulation

- -

The most basic way to set an environment variable in Apache - is using the unconditional SetEnv directive. - Variables may also be passed from the environment of the shell - which started the server using the PassEnv - directive.

- -

Conditional Per-Request Settings

- -

For additional flexibility, the directives provided by - mod_setenvif allow environment variables to be set on a - per-request basis, conditional on characteristics of particular - requests. For example, a variable could be set only when a - specific browser (User-Agent) is making a request, or only when - a specific Referer [sic] header is found. Even more flexibility - is available through the mod_rewrite's RewriteRule - which uses the [E=...] option to set environment - variables.

- -

Unique Identifiers

- -

Finally, mod_unique_id sets the environment variable - UNIQUE_ID for each request to a value which is - guaranteed to be unique across "all" requests under very - specific conditions.

- -

Standard CGI Variables

- -

In addition to all environment variables set within the - Apache configuration and passed from the shell, CGI scripts and - SSI pages are provided with a set of environment variables - containing meta-information about the request as required by - the CGI - specification.

- -

Some Caveats

- -
    -
  • It is not possible to override or change the standard CGI - variables using the environment manipulation directives.
  • - -
  • When suexec is used to launch - CGI scripts, the environment will be cleaned down to a set of - safe variables before CGI scripts are launched. The - list of safe variables is defined at compile-time in - suexec.c.
  • - -
  • For portability reasons, the names of environment - variables may contain only letters, numbers, and the - underscore character. In addition, the first character may - not be a number. Characters which do not match this - restriction will be replaced by an underscore when passed to - CGI scripts and SSI pages.
  • -
-
- -

Using Environment - Variables

- - - - - - - -
Related Modules
-
- mod_access
- mod_cgi
- mod_headers
- mod_include
- mod_log_config
- mod_rewrite
-
Related Directives
-
- Allow
- CustomLog
- Deny
- Header
- LogFormat
- RewriteCond
- RewriteRule
-
- -

CGI Scripts

- -

One of the primary uses of environment variables is to - communicate information to CGI scripts. As discussed above, the - environment passed to CGI scripts includes standard - meta-information about the request in addition to any variables - set within the Apache configuration. For more details, see the - CGI tutorial.

- -

SSI Pages

- -

Server-parsed (SSI) documents processed by mod_include's - INCLUDES filter can print environment variables - using the echo element, and can use environment - variables in flow control elements to makes parts of a page - conditional on characteristics of a request. Apache also - provides SSI pages with the standard CGI environment variables - as discussed above. For more details, see the SSI tutorial.

- -

Access Control

- -

Access to the server can be controlled based on the value of - environment variables using the allow from env= - and deny from env= directives. In combination with - SetEnvIf, this allows for flexible control of - access to the server based on characteristics of the client. - For example, you can use these directives to deny access to a - particular browser (User-Agent).

- -

Conditional Logging

- -

Environment variables can be logged in the access log using - the LogFormat option %e. In addition, - the decision on whether or not to log requests can be made - based on the status of environment variables using the - conditional form of the CustomLog directive. In - combination with SetEnvIf this allows for flexible - control of which requests are logged. For example, you can - choose not to log requests for filenames ending in - gif, or you can choose to only log requests from - clients which are outside your subnet.

- -

Conditional Response Headers

- -

The Header directive can use the presence or - absence of an environment variable to determine whether or not - a certain HTTP header will be placed in the response to the - client. This allows, for example, a certain response header to - be sent only if a corresponding header is received in the - request from the client.

- -

URL Rewriting

- -

The %{ENV:...} form of TestString in - the RewriteCond allows mod_rewrite's rewrite - engine to make decisions conditional on environment variables. - Note that the variables accessible in mod_rewrite without the - ENV: prefix are not actually environment - variables. Rather, they are variables special to mod_rewrite - which cannot be accessed from other modules.

-
- -

Special Purpose Environment - Variables

- -

Interoperability problems have led to the introduction of - mechanisms to modify the way Apache behaves when talking to - particular clients. To make these mechanisms as flexible as - possible, they are invoked by defining environment variables, - typically with BrowserMatch, - though SetEnv and PassEnv could also be used, - for example.

- -

downgrade-1.0

- -

This forces the request to be treated as a HTTP/1.0 request - even if it was in a later dialect.

- -

force-no-vary

- -

This causes any Vary fields to be removed from - the response header before it is sent back to the client. Some - clients don't interpret this field correctly (see the known client - problems page); setting this variable can work around this - problem. Setting this variable also implies - force-response-1.0.

- -

force-response-1.0

- -

This forces an HTTP/1.0 response when set. It was originally - implemented as a result of a problem with AOL's proxies. Some - clients may not behave correctly when given an HTTP/1.1 - response, and this can be used to interoperate with them.

- -

nokeepalive

- -

This disables KeepAlive when set.

- -

redirect-carefully

- -

This forces the server to be more careful when sending a redirect - to the client. This is typically used when a client has a known - problem handling redirects. This was originally implemented as a - result of a problem with Microsoft's WebFolders software which has - a problem handling redirects on directory resources via DAV - methods.

- -
-

Examples

- -

Changing protocol behavior with misbehaving clients

- -

We recommend that the following lines be included in - httpd.conf to deal with known client problems.

-
+  

Setting Environment Variables

+ +
Related Modules

mod_env,
mod_rewrite,
mod_setenvif,
mod_unique_id
Related Directives

BrowserMatch
BrowserMatchNoCase
PassEnv
RewriteRule
SetEnv
SetEnvIf
SetEnvIfNoCase
UnsetEnv
+ +

Basic Environment Manipulation

+ + +

The most basic way to set an environment variable in Apache + is using the unconditional SetEnv directive. Variables may also be passed from + the environment of the shell which started the server using the + PassEnv directive.

+ + +

Conditional Per-Request Settings

+ + +

For additional flexibility, the directives provided by + mod_setenvif allow environment variables to be set on a + per-request basis, conditional on characteristics of particular + requests. For example, a variable could be set only when a + specific browser (User-Agent) is making a request, or only when + a specific Referer [sic] header is found. Even more flexibility + is available through the mod_rewrite's RewriteRule which uses the + [E=...] option to set environment variables.

+ + +

Unique Identifiers

+ + +

Finally, mod_unique_id sets the environment variable + UNIQUE_ID for each request to a value which is + guaranteed to be unique across "all" requests under very + specific conditions.

+ + +

Standard CGI Variables

+ + +

In addition to all environment variables set within the + Apache configuration and passed from the shell, CGI scripts and + SSI pages are provided with a set of environment variables + containing meta-information about the request as required by + the CGI + specification.

+ + +

Some Caveats

+ + +
    +
  • It is not possible to override or change the standard CGI + variables using the environment manipulation directives.
  • + +
  • When suexec is used to launch + CGI scripts, the environment will be cleaned down to a set of + safe variables before CGI scripts are launched. The + list of safe variables is defined at compile-time in + suexec.c.
  • + +
  • For portability reasons, the names of environment + variables may contain only letters, numbers, and the + underscore character. In addition, the first character may + not be a number. Characters which do not match this + restriction will be replaced by an underscore when passed to + CGI scripts and SSI pages.
  • +
+ +

Using Environment Variables

+ + +
Related Modules

mod_access,
mod_cgi,
mod_headers,
mod_include,
mod_log_config,
mod_rewrite
Related Directives

Allow
CustomLog
Deny
Header
LogFormat
RewriteCond
RewriteRule
+ +

CGI Scripts

+ + +

One of the primary uses of environment variables is to + communicate information to CGI scripts. As discussed above, the + environment passed to CGI scripts includes standard + meta-information about the request in addition to any variables + set within the Apache configuration. For more details, see the + CGI tutorial.

+ + +

SSI Pages

+ + +

Server-parsed (SSI) documents processed by mod_include's + INCLUDES filter can print environment variables + using the echo element, and can use environment + variables in flow control elements to makes parts of a page + conditional on characteristics of a request. Apache also + provides SSI pages with the standard CGI environment variables + as discussed above. For more details, see the SSI tutorial.

+ + +

Access Control

+ + +

Access to the server can be controlled based on the value of + environment variables using the allow from env= + and deny from env= directives. In combination with + SetEnvIf, this + allows for flexible control of access to the server based on + characteristics of the client. For example, you can use these + directives to deny access to a particular browser (User-Agent). +

+ + +

Conditional Logging

+ + +

Environment variables can be logged in the access log using + the LogFormat + option %e. In addition, the decision on whether + or not to log requests can be made based on the status of + environment variables using the conditional form of the + CustomLog + directive. In combination with SetEnvIf this allows for flexible control of which + requests are logged. For example, you can choose not to log + requests for filenames ending in gif, or you can + choose to only log requests from clients which are outside your + subnet.

+ + +

Conditional Response Headers

+ + +

The Header + directive can use the presence or + absence of an environment variable to determine whether or not + a certain HTTP header will be placed in the response to the + client. This allows, for example, a certain response header to + be sent only if a corresponding header is received in the + request from the client.

+ + +

URL Rewriting

+ + +

The %{ENV:...} form of TestString in + the RewriteCond + allows mod_rewrite's rewrite + engine to make decisions conditional on environment variables. + Note that the variables accessible in mod_rewrite without the + ENV: prefix are not actually environment + variables. Rather, they are variables special to mod_rewrite + which cannot be accessed from other modules.

+ +

Special Purpose Environment Variables

+ + +

Interoperability problems have led to the introduction of + mechanisms to modify the way Apache behaves when talking to + particular clients. To make these mechanisms as flexible as + possible, they are invoked by defining environment variables, + typically with BrowserMatch, + though SetEnv and + PassEnv could also be used, + for example.

+ +

downgrade-1.0

+ + +

This forces the request to be treated as a HTTP/1.0 request + even if it was in a later dialect.

+ + +

force-no-vary

+ + +

This causes any Vary fields to be removed from + the response header before it is sent back to the client. Some + clients don't interpret this field correctly (see the known client + problems page); setting this variable can work around this + problem. Setting this variable also implies + force-response-1.0.

+ + +

force-response-1.0

+ + +

This forces an HTTP/1.0 response when set. It was originally + implemented as a result of a problem with AOL's proxies. Some + clients may not behave correctly when given an HTTP/1.1 + response, and this can be used to interoperate with them.

+ + +

nokeepalive

+ + +

This disables KeepAlive when set.

+ + +

redirect-carefully

+ + +

This forces the server to be more careful when sending a redirect + to the client. This is typically used when a client has a known + problem handling redirects. This was originally implemented as a + result of a problem with Microsoft's WebFolders software which has + a problem handling redirects on directory resources via DAV + methods.

+ + +

Examples

+ + +

Changing protocol behavior with misbehaving clients

+ + +

We recommend that the following lines be included in + httpd.conf to deal with known client problems.

+
 #
 # The following directives modify normal HTTP response behavior.
 # The first directive disables keepalive for Netscape 2.x and browsers that
@@ -306,45 +253,43 @@ BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
 #
 BrowserMatch "RealPlayer 4\.0" force-response-1.0
 BrowserMatch "Java/1\.0" force-response-1.0
-BrowserMatch "JDK/1\.0" force-response-1.0
-
- -

Do not log requests for images in the access log

- -

This example keeps requests for images from appearing in the - access log. It can be easily modified to prevent logging of - particular directories, or to prevent logging of requests - coming from particular hosts.

-
-    SetEnvIf Request_URI \.gif image-request
-    SetEnvIf Request_URI \.jpg image-request
-    SetEnvIf Request_URI \.png image-request
-    CustomLog logs/access_log common env=!image-request
-
- -

Prevent "Image Theft"

- -

This example shows how to keep people not on your server - from using images on your server as inline-images on their - pages. This is not a recommended configuration, but it can work - in limited circumstances. We assume that all your images are in - a directory called /web/images.

-
-    SetEnvIf Referer "^http://www.example.com/" local_referal
-    # Allow browsers that do not send Referer info
-    SetEnvIf Referer "^$" local_referal
-    <Directory /web/images>
-       Order Deny,Allow
-       Deny from all
-       Allow from env=local_referal
-    </Directory>
-
- -

For more information about this technique, see the - ApacheToday tutorial " +BrowserMatch "JDK/1\.0" force-response-1.0

+ + +

Do not log requests for images in the access log

+ + +

This example keeps requests for images from appearing in the + access log. It can be easily modified to prevent logging of + particular directories, or to prevent logging of requests + coming from particular hosts.

+
+SetEnvIf Request_URI \.gif image-request
+SetEnvIf Request_URI \.jpg image-request
+SetEnvIf Request_URI \.png image-request
+CustomLog logs/access_log common env=!image-request
+ + +

Prevent "Image Theft"

+ + +

This example shows how to keep people not on your server + from using images on your server as inline-images on their + pages. This is not a recommended configuration, but it can work + in limited circumstances. We assume that all your images are in + a directory called /web/images.

+
+SetEnvIf Referer "^http://www.example.com/" local_referal
+# Allow browsers that do not send Referer info
+SetEnvIf Referer "^$" local_referal
+<Directory /web/images>
+   Order Deny,Allow
+   Deny from all
+   Allow from env=local_referal
+</Directory>
+ +

For more information about this technique, see the + ApacheToday tutorial " Keeping Your Images from Adorning Other Sites".

- - - - + +

Apache HTTP Server Version 2.0

IndexHome \ No newline at end of file diff --git a/docs/manual/env.xml b/docs/manual/env.xml new file mode 100644 index 0000000000..263e3527dc --- /dev/null +++ b/docs/manual/env.xml @@ -0,0 +1,353 @@ + + + + + + + + Environment Variables in Apache + + +

The Apache HTTP Server provides a mechanism for storing + information in named variables that are called environment + variables. This information can be used to control various + operations such as logging or access control. The variables are + also used as a mechanism to communicate with external programs + such as CGI scripts. This document discusses different ways to + manipulate and use these variables.

+ +

Although these variables are referred to as environment + variables, they are not the same as the environment + variables controlled by the underlying operating system. + Instead, these variables are stored and manipulated in an + internal Apache structure. They only become actual operating + system environment variables when they are provided to CGI + scripts and Server Side Include scripts. If you wish to + manipulate the operating system environment under which the + server itself runs, you must use the standard environment + manipulation mechanisms provided by your operating system + shell.

+
+ +
+ Setting Environment Variables + + + mod_env + mod_rewrite + mod_setenvif + mod_unique_id + + + BrowserMatch + BrowserMatchNoCase + PassEnv + RewriteRule + SetEnv + SetEnvIf + SetEnvIfNoCase + UnsetEnv + + + +
+ Basic Environment Manipulation + +

The most basic way to set an environment variable in Apache + is using the unconditional SetEnv directive. Variables may also be passed from + the environment of the shell which started the server using the + PassEnv directive.

+ +
+
+ Conditional Per-Request Settings + +

For additional flexibility, the directives provided by + mod_setenvif allow environment variables to be set on a + per-request basis, conditional on characteristics of particular + requests. For example, a variable could be set only when a + specific browser (User-Agent) is making a request, or only when + a specific Referer [sic] header is found. Even more flexibility + is available through the mod_rewrite's RewriteRule which uses the + [E=...] option to set environment variables.

+ +
+
+ Unique Identifiers + +

Finally, mod_unique_id sets the environment variable + UNIQUE_ID for each request to a value which is + guaranteed to be unique across "all" requests under very + specific conditions.

+ +
+
+ Standard CGI Variables + +

In addition to all environment variables set within the + Apache configuration and passed from the shell, CGI scripts and + SSI pages are provided with a set of environment variables + containing meta-information about the request as required by + the CGI + specification.

+ +
+
+ Some Caveats + +
    +
  • It is not possible to override or change the standard CGI + variables using the environment manipulation directives.
  • + +
  • When suexec is used to launch + CGI scripts, the environment will be cleaned down to a set of + safe variables before CGI scripts are launched. The + list of safe variables is defined at compile-time in + suexec.c.
  • + +
  • For portability reasons, the names of environment + variables may contain only letters, numbers, and the + underscore character. In addition, the first character may + not be a number. Characters which do not match this + restriction will be replaced by an underscore when passed to + CGI scripts and SSI pages.
  • +
+
+
+
+ Using Environment Variables + + + + mod_access + mod_cgi + mod_headers + mod_include + mod_log_config + mod_rewrite + + + Allow + CustomLog + Deny + Header + LogFormat + RewriteCond + RewriteRule + + + +
+ CGI Scripts + +

One of the primary uses of environment variables is to + communicate information to CGI scripts. As discussed above, the + environment passed to CGI scripts includes standard + meta-information about the request in addition to any variables + set within the Apache configuration. For more details, see the + CGI tutorial.

+ +
+
+ SSI Pages + +

Server-parsed (SSI) documents processed by mod_include's + INCLUDES filter can print environment variables + using the echo element, and can use environment + variables in flow control elements to makes parts of a page + conditional on characteristics of a request. Apache also + provides SSI pages with the standard CGI environment variables + as discussed above. For more details, see the SSI tutorial.

+ +
+
+ Access Control + +

Access to the server can be controlled based on the value of + environment variables using the allow from env= + and deny from env= directives. In combination with + SetEnvIf, this + allows for flexible control of access to the server based on + characteristics of the client. For example, you can use these + directives to deny access to a particular browser (User-Agent). +

+ +
+
+ Conditional Logging + +

Environment variables can be logged in the access log using + the LogFormat + option %e. In addition, the decision on whether + or not to log requests can be made based on the status of + environment variables using the conditional form of the + CustomLog + directive. In combination with SetEnvIf this allows for flexible control of which + requests are logged. For example, you can choose not to log + requests for filenames ending in gif, or you can + choose to only log requests from clients which are outside your + subnet.

+ +
+
+ Conditional Response Headers + +

The Header + directive can use the presence or + absence of an environment variable to determine whether or not + a certain HTTP header will be placed in the response to the + client. This allows, for example, a certain response header to + be sent only if a corresponding header is received in the + request from the client.

+ +
+
+ URL Rewriting + +

The %{ENV:...} form of TestString in + the RewriteCond + allows mod_rewrite's rewrite + engine to make decisions conditional on environment variables. + Note that the variables accessible in mod_rewrite without the + ENV: prefix are not actually environment + variables. Rather, they are variables special to mod_rewrite + which cannot be accessed from other modules.

+
+
+ +
+ Special Purpose Environment Variables + +

Interoperability problems have led to the introduction of + mechanisms to modify the way Apache behaves when talking to + particular clients. To make these mechanisms as flexible as + possible, they are invoked by defining environment variables, + typically with BrowserMatch, + though SetEnv and + PassEnv could also be used, + for example.

+ +
+ downgrade-1.0 + +

This forces the request to be treated as a HTTP/1.0 request + even if it was in a later dialect.

+ +
+
+ force-no-vary + +

This causes any Vary fields to be removed from + the response header before it is sent back to the client. Some + clients don't interpret this field correctly (see the known client + problems page); setting this variable can work around this + problem. Setting this variable also implies + force-response-1.0.

+ +
+
+ force-response-1.0 + +

This forces an HTTP/1.0 response when set. It was originally + implemented as a result of a problem with AOL's proxies. Some + clients may not behave correctly when given an HTTP/1.1 + response, and this can be used to interoperate with them.

+ +
+
+ nokeepalive + +

This disables KeepAlive when set.

+ +
+
+ redirect-carefully + +

This forces the server to be more careful when sending a redirect + to the client. This is typically used when a client has a known + problem handling redirects. This was originally implemented as a + result of a problem with Microsoft's WebFolders software which has + a problem handling redirects on directory resources via DAV + methods.

+ +
+
+ +
+ Examples + +
+ Changing protocol behavior with misbehaving clients + +

We recommend that the following lines be included in + httpd.conf to deal with known client problems.

+
+#
+# The following directives modify normal HTTP response behavior.
+# The first directive disables keepalive for Netscape 2.x and browsers that
+# spoof it. There are known problems with these browser implementations.
+# The second directive is for Microsoft Internet Explorer 4.0b2
+# which has a broken HTTP/1.1 implementation and does not properly
+# support keepalive when it is used on 301 or 302 (redirect) responses.
+#
+BrowserMatch "Mozilla/2" nokeepalive
+BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
+
+#
+# The following directive disables HTTP/1.1 responses to browsers which
+# are in violation of the HTTP/1.0 spec by not being able to grok a
+# basic 1.1 response.
+#
+BrowserMatch "RealPlayer 4\.0" force-response-1.0
+BrowserMatch "Java/1\.0" force-response-1.0
+BrowserMatch "JDK/1\.0" force-response-1.0
+ +
+
+ Do not log requests for images in the access log + +

This example keeps requests for images from appearing in the + access log. It can be easily modified to prevent logging of + particular directories, or to prevent logging of requests + coming from particular hosts.

+
+SetEnvIf Request_URI \.gif image-request
+SetEnvIf Request_URI \.jpg image-request
+SetEnvIf Request_URI \.png image-request
+CustomLog logs/access_log common env=!image-request
+ +
+
+ Prevent "Image Theft" + +

This example shows how to keep people not on your server + from using images on your server as inline-images on their + pages. This is not a recommended configuration, but it can work + in limited circumstances. We assume that all your images are in + a directory called /web/images.

+
+SetEnvIf Referer "^http://www.example.com/" local_referal
+# Allow browsers that do not send Referer info
+SetEnvIf Referer "^$" local_referal
+<Directory /web/images>
+   Order Deny,Allow
+   Deny from all
+   Allow from env=local_referal
+</Directory>
+ +

For more information about this technique, see the + ApacheToday tutorial " + Keeping Your Images from Adorning Other Sites".

+
+
+
+ + + + diff --git a/docs/manual/filter.html.en b/docs/manual/filter.html.en index 85c460ab38..75689e4963 100644 --- a/docs/manual/filter.html.en +++ b/docs/manual/filter.html.en @@ -1,47 +1,13 @@ - - - - - - - Filters - Apache HTTPD - - - - - - -

Filters

- - - - - - - -
Related Modules
-
- mod_deflate
- mod_ext_filter
- mod_include
-
Related Directives
-
- AddInputFilter
- AddOutputFilter
- ExtFilterDefine
- ExtFilterOptions
- SetInputFilter
- SetOutputFilter
-
- +Filters- Apache HTTP Server
[APACHE DOCUMENTATION]

Apache HTTP Server Version 2.0

Filters

+

This document describes the use of filters in Apache.

+

Filters

+ +
Related Modules

mod_deflate,
mod_ext_filter,
mod_include
Related Directives

AddInputFilter
AddOutputFilter
ExtFilterDefine
ExtFilterOptions
SetInputFilter
SetOutputFilter
+

A filter is a process that is applied to data that is sent or received by the server. Data sent by clients to the server is processed by input filters while data sent @@ -53,25 +19,18 @@ as chunking and byte-range request handling. In addition, modules can provide filters that are selectable using run-time configuration directives. The set of filters that apply to data - can be manipulated with the SetInputFilter, - SetOutputFilter, AddInputFilter, and - AddOutputFilter directives.

+ can be manipulated with the SetInputFilter, SetOutputFilter, AddInputFilter, and AddOutputFilter directives.

The following user-selectable filters are currently provided with the Apache HTTP Server distribution.

-
-
INCLUDES
Server-Side Includes processing by mod_include
-
DEFLATE
Compress output before sending it to -the client using mod_deflate
-
+
+
INCLUDES
+
Server-Side Includes processing by mod_include
+
DEFLATE
+
Compress output before sending it to the client using mod_include
+
-

In addition, the module mod_ext_filter allows +

In addition, the module mod_ext_filter allows for external programs to be defined as filters.

- - - - - +

Apache HTTP Server Version 2.0

IndexHome \ No newline at end of file diff --git a/docs/manual/filter.xml b/docs/manual/filter.xml new file mode 100644 index 0000000000..ba58529f66 --- /dev/null +++ b/docs/manual/filter.xml @@ -0,0 +1,67 @@ + + + + + + + + Filters + + +

This document describes the use of filters in Apache.

+
+ +
+ Filters + + + mod_deflate + mod_ext_filter + mod_include + + + AddInputFilter + AddOutputFilter + ExtFilterDefine + ExtFilterOptions + SetInputFilter + SetOutputFilter + + + +

A filter is a process that is applied to data that + is sent or received by the server. Data sent by clients to the + server is processed by input filters while data sent + by the server to the client is processed by output + filters. Multiple filters can be applied to the data, and + the order of the filters can be explicitly specified.

+ +

Filters are used internally by Apache to perform functions such + as chunking and byte-range request handling. In addition, modules + can provide filters that are selectable using run-time + configuration directives. The set of filters that apply to data + can be manipulated with the SetInputFilter, SetOutputFilter, AddInputFilter, and AddOutputFilter directives.

+ +

The following user-selectable filters are currently provided + with the Apache HTTP Server distribution.

+ +
+
INCLUDES
+
Server-Side Includes processing by mod_include
+
DEFLATE
+
Compress output before sending it to the client using mod_include
+
+ +

In addition, the module mod_ext_filter allows + for external programs to be defined as filters.

+
+
+ + + + diff --git a/docs/manual/handler.html.en b/docs/manual/handler.html.en index f937095dcd..48648277e0 100644 --- a/docs/manual/handler.html.en +++ b/docs/manual/handler.html.en @@ -1,59 +1,13 @@ - - - - - - - Apache's Handler Use - - - - - - -

Apache's Handler Use

- - -
- -

What is a - Handler

- - - - - - - -
Related Modules
-
- mod_actions
- mod_asis
- mod_cgi
- mod_imap
- mod_info
- mod_mime
- mod_negotiation
- mod_status
-
Related Directives
-
- Action
- AddHandler
- RemoveHandler
- SetHandler
-
+Apache's Handler Use- Apache HTTP Server
[APACHE DOCUMENTATION]

Apache HTTP Server Version 2.0

Apache's Handler Use

+

This document describes the use of Apache's Handlers.

+

What is a Handler

+ +
Related Modules

mod_actions,
mod_asis,
mod_cgi,
mod_imap,
mod_info,
mod_mime,
mod_negotiation,
mod_status
Related Directives

Action
AddHandler
RemoveHandler
SetHandler
+

A "handler" is an internal Apache representation of the action to be performed when a file is called. Generally, files @@ -66,13 +20,11 @@ can be specified without relation to file type. This is advantageous both because it is a more elegant solution, and because it also allows for both a type and a - handler to be associated with a file. (See also Files with Multiple + handler to be associated with a file. (See also Files with Multiple Extensions.)

Handlers can either be built into the server or included in - a module, or they can be added with the Action directive. The + a module, or they can be added with the Action directive. The built-in handlers in the standard distribution are as follows:

@@ -82,61 +34,63 @@ default to handle static content. (core)
  • send-as-is: Send file with HTTP headers - as is. (mod_asis)
  • + as is. (mod_asis)
  • cgi-script: Treat the file as a CGI - script. (mod_cgi)
  • + script. (mod_cgi)
  • imap-file: Parse as an imagemap rule - file. (mod_imap)
  • + file. (mod_imap)
  • server-info: Get the server's - configuration information. (mod_info)
  • + configuration information. (mod_info)
  • server-status: Get the server's status - report. (mod_status)
  • + report. (mod_status)
  • type-map: Parse as a type map file for - content negotiation. (mod_negotiation)
  • + content negotiation. (mod_negotiation) -
    - -

    Examples

    - -

    Modifying static content using a CGI script

    - -

    The following directives will cause requests for files with - the html extension to trigger the launch of the - footer.pl CGI script.

    -
    -     Action add-footer /cgi-bin/footer.pl
    -     AddHandler add-footer .html
    -
    - -

    Then the CGI script is responsible for sending the - originally requested document (pointed to by the - PATH_TRANSLATED environment variable) and making - whatever modifications or additions are desired.

    - -

    Files with HTTP headers

    - -

    The following directives will enable the - send-as-is handler, which is used for files which - contain their own HTTP headers. All files in the - /web/htdocs/asis/ directory will be processed by - the send-as-is handler, regardless of their - filename extensions.

    -
    -    <Directory /web/htdocs/asis>
    -    SetHandler send-as-is
    -    </Directory>
    -
    -
    - -

    Programmer's - Note

    +

    Examples

    + + +

    Modifying static content using a CGI script

    + + +

    The following directives will cause requests for files with + the html extension to trigger the launch of the + footer.pl CGI script.

    + +
    + Action add-footer /cgi-bin/footer.pl
    + AddHandler add-footer .html +
    + +

    Then the CGI script is responsible for sending the + originally requested document (pointed to by the + PATH_TRANSLATED environment variable) and making + whatever modifications or additions are desired.

    + + +

    Files with HTTP headers

    + + +

    The following directives will enable the + send-as-is handler, which is used for files which + contain their own HTTP headers. All files in the + /web/htdocs/asis/ directory will be processed by + the send-as-is handler, regardless of their + filename extensions.

    + +
    + <Directory /web/htdocs/asis>
    + SetHandler send-as-is
    + </Directory> +
    + + +

    Programmer's Note

    +

    In order to implement the handler features, an addition has been made to the Apache API that @@ -154,7 +108,4 @@ type. While it is not necessary, the naming convention for handlers is to use a dash-separated word, with no slashes, so as to not invade the media type name-space.

    - - - - +

    Apache HTTP Server Version 2.0

    IndexHome \ No newline at end of file diff --git a/docs/manual/handler.xml b/docs/manual/handler.xml new file mode 100644 index 0000000000..3907bb4f20 --- /dev/null +++ b/docs/manual/handler.xml @@ -0,0 +1,145 @@ + + + + + + + + Apache's Handler Use + + +

    This document describes the use of Apache's Handlers.

    +
    + +
    + What is a Handler + + + mod_actions + mod_asis + mod_cgi + mod_imap + mod_info + mod_mime + mod_negotiation + mod_status + + + Action + AddHandler + RemoveHandler + SetHandler + + + + +

    A "handler" is an internal Apache representation of the + action to be performed when a file is called. Generally, files + have implicit handlers, based on the file type. Normally, all + files are simply served by the server, but certain file types + are "handled" separately.

    + +

    Apache 1.1 adds the ability to use handlers explicitly. + Based on either filename extensions or on location, handlers + can be specified without relation to file type. This is + advantageous both because it is a more elegant solution, and + because it also allows for both a type and a + handler to be associated with a file. (See also Files with Multiple + Extensions.)

    + +

    Handlers can either be built into the server or included in + a module, or they can be added with the Action directive. The + built-in handlers in the standard distribution are as + follows:

    + +
      +
    • default-handler: Send the file using the + default_handler(), which is the handler used by + default to handle static content. (core)
    • + +
    • send-as-is: Send file with HTTP headers + as is. (mod_asis)
    • + +
    • cgi-script: Treat the file as a CGI + script. (mod_cgi)
    • + +
    • imap-file: Parse as an imagemap rule + file. (mod_imap)
    • + +
    • server-info: Get the server's + configuration information. (mod_info)
    • + +
    • server-status: Get the server's status + report. (mod_status)
    • + +
    • type-map: Parse as a type map file for + content negotiation. (mod_negotiation)
    • +
    +
    +
    + Examples + +
    + Modifying static content using a CGI script + +

    The following directives will cause requests for files with + the html extension to trigger the launch of the + footer.pl CGI script.

    + + + Action add-footer /cgi-bin/footer.pl
    + AddHandler add-footer .html +
    + +

    Then the CGI script is responsible for sending the + originally requested document (pointed to by the + PATH_TRANSLATED environment variable) and making + whatever modifications or additions are desired.

    + +
    +
    + Files with HTTP headers + +

    The following directives will enable the + send-as-is handler, which is used for files which + contain their own HTTP headers. All files in the + /web/htdocs/asis/ directory will be processed by + the send-as-is handler, regardless of their + filename extensions.

    + + + <Directory /web/htdocs/asis>
    + SetHandler send-as-is
    + </Directory> +
    + +
    +
    +
    + Programmer's Note + +

    In order to implement the handler features, an addition has + been made to the Apache API that + you may wish to make use of. Specifically, a new record has + been added to the request_rec structure:

    +
    +    char *handler
    +
    + +

    If you wish to have your module engage a handler, you need + only to set r->handler to the name of the + handler at any time prior to the invoke_handler + stage of the request. Handlers are implemented as they were + before, albeit using the handler name instead of a content + type. While it is not necessary, the naming convention for + handlers is to use a dash-separated word, with no slashes, so + as to not invade the media type name-space.

    +
    +
    + + + + +