NAME

Apache::Constants - Constants defined in apache header files

SYNOPSIS

use Apache::Constants;
use Apache::Constants ':common';
use Apache::Constants ':response';

DESCRIPTION

Server constants used by apache modules are defined in httpd.h and other header files, this module gives Perl access to those constants.

EXPORT TAGS

common

This tag imports the most commonly used constants.

OK
DECLINED
DONE
NOT_FOUND
FORBIDDEN
AUTH_REQUIRED
SERVER_ERROR 
response

This tag imports the common response codes, plus these response codes:

DOCUMENT_FOLLOWS
MOVED
REDIRECT
USE_LOCAL_COPY
BAD_REQUEST
BAD_GATEWAY
RESPONSE_CODES
NOT_IMPLEMENTED
CONTINUE
NOT_AUTHORITATIVE

CONTINUE and NOT_AUTHORITATIVE are aliases for DECLINED.

methods

This are the method numbers, commonly used with the Apache method_number method.

METHODS
M_CONNECT
M_DELETE
M_GET
M_INVALID
M_OPTIONS
M_POST
M_PUT
M_TRACE 
M_PATCH
M_PROPFIND
M_PROPPATCH
M_MKCOL
M_COPY
M_MOVE
M_LOCK
M_UNLOCK
options

These constants are most commonly used with the Apache allow_options method:

OPT_NONE
OPT_INDEXES
OPT_INCLUDES 
OPT_SYM_LINKS
OPT_EXECCGI
OPT_UNSET
OPT_INCNOEXEC
OPT_SYM_OWNER
OPT_MULTI
OPT_ALL
satisfy

These constants are most commonly used with the Apache satisfies method:

SATISFY_ALL
SATISFY_ANY
SATISFY_NOSPEC
remotehost

These constants are most commonly used with the Apache get_remote_host method:

REMOTE_HOST
REMOTE_NAME
REMOTE_NOLOOKUP
REMOTE_DOUBLE_REV
http

This is the full set of HTTP response codes: (NOTE: not all implemented here)

HTTP_OK
HTTP_MOVED_TEMPORARILY
HTTP_MOVED_PERMANENTLY
HTTP_METHOD_NOT_ALLOWED 
HTTP_NOT_MODIFIED
HTTP_UNAUTHORIZED
HTTP_FORBIDDEN
HTTP_NOT_FOUND
HTTP_BAD_REQUEST
HTTP_INTERNAL_SERVER_ERROR
HTTP_NOT_ACCEPTABLE 
HTTP_NO_CONTENT
HTTP_PRECONDITION_FAILED
HTTP_SERVICE_UNAVAILABLE
HTTP_VARIANT_ALSO_VARIES
server

These are constants related to server version:

MODULE_MAGIC_NUMBER
SERVER_VERSION
SERVER_BUILT
config

These are constants related to configuration directives:

DECLINE_CMD
types

These are constants related to internal request types:

DIR_MAGIC_TYPE
override

These constants are used to control and test the context of configuration directives.

OR_NONE
OR_LIMIT
OR_OPTIONS
OR_FILEINFO
OR_AUTHCFG
OR_INDEXES
OR_UNSET
OR_ALL
ACCESS_CONF
RSRC_CONF
args_how
RAW_ARGS
TAKE1
TAKE2
TAKE12
TAKE3
TAKE23
TAKE123
ITERATE
ITERATE2
FLAG
NO_ARGS

Misuses

You should be aware of the issues relating to using constant subroutines in Perl. For example this:

$r->custom_response(FORBIDDEN => "File size exceeds quota.");

will not set a custom response for FORBIDDEN, but for the string "FORBIDDEN", which clearly isn't what is expected. You'll get an error like this:

[Tue Apr 23 19:46:14 2002] null: Argument "FORBIDDEN" isn't
numeric in subroutine entry at ...

Therefore, the best solution is not to use the hash notation for things that don't require it:

$r->custom_response(FORBIDDEN,  "File size exceeds quota.");

Another important note is that instead of using HTTP codes, you should use designed for that purpose constants. Therefore, this is wrong:

sub handler { return 200; }

The correct use is:

use Apache::Constants qw(OK);
sub handler { return OK; }

Also remember that OK != HTTP_OK.

AUTHORS

Doug MacEachern, Gisle Aas and h2xs