request_rec Struct Reference
[HTTP Daemon Routine]

A structure that represents the current request. More...

#include <httpd.h>

Data Fields

apr_pool_tpool
conn_recconnection
server_recserver
request_recnext
request_recprev
request_recmain
char * the_request
int assbackwards
int proxyreq
int header_only
char * protocol
int proto_num
const char * hostname
apr_time_t request_time
const char * status_line
int status
const char * method
int method_number
apr_int64_t allowed
apr_array_header_tallowed_xmethods
ap_method_list_tallowed_methods
apr_off_t sent_bodyct
apr_off_t bytes_sent
apr_time_t mtime
int chunked
const char * range
apr_off_t clength
apr_off_t remaining
apr_off_t read_length
int read_body
int read_chunked
unsigned expecting_100
apr_table_theaders_in
apr_table_theaders_out
apr_table_terr_headers_out
apr_table_tsubprocess_env
apr_table_tnotes
const char * content_type
const char * handler
const char * content_encoding
apr_array_header_tcontent_languages
char * vlist_validator
char * user
char * ap_auth_type
int no_cache
int no_local_copy
char * unparsed_uri
char * uri
char * filename
char * canonical_filename
char * path_info
char * args
apr_finfo_t finfo
apr_uri_t parsed_uri
int used_path_info
struct ap_conf_vector_tper_dir_config
struct ap_conf_vector_trequest_config
struct htaccess_resulthtaccess
struct ap_filter_toutput_filters
struct ap_filter_tinput_filters
struct ap_filter_tproto_output_filters
struct ap_filter_tproto_input_filters
int eos_sent
apr_bucket_brigadekept_body
apr_thread_mutex_tinvoke_mtx
apr_table_tbody_table

Detailed Description

A structure that represents the current request.


Field Documentation

'allowed' is a bitvector of the allowed methods.

A handler must ensure that the request method is one that it is capable of handling. Generally modules should DECLINE any request methods they do not handle. Prior to aborting the handler like this the handler should set r->allowed to the list of methods that it is willing to handle. This bitvector is used to construct the "Allow:" header required for OPTIONS requests, and HTTP_METHOD_NOT_ALLOWED and HTTP_NOT_IMPLEMENTED status codes.

Since the default_handler deals with OPTIONS, all modules can usually decline to deal with OPTIONS. TRACE is always allowed, modules don't need to set it explicitly.

Since the default_handler will always handle a GET, a module which does *not* implement GET should probably return HTTP_METHOD_NOT_ALLOWED. Unfortunately this means that a Script GET handler can't be installed by mod_actions.

List of allowed methods

Array of extension methods

If an authentication check was made, this gets set to the auth type.

The QUERY_ARGS extracted from this request

HTTP/0.9, "simple" request (e.g. GET /foo
w/no headers)

body byte count, for easy access

The true filename, we canonicalize r->filename if these don't match

sending chunked transfer-coding

The "real" content length

The connection to the client

How to encode the data

Array of strings representing the content languages

The content-type for the current request

A flag to determine if the eos bucket has been sent yet

MIME header environment for the response, printed even on errors and persist across internal redirects

is client waiting for a 100 response?

The filename on disk corresponding to this response

finfo.protection (st_mode) set to zero if no such file

const char* request_rec::handler

The handler string that we use to call a handler function

HEAD request, as opposed to GET

MIME header environment from the request

MIME header environment for the response

const char* request_rec::hostname

Host, as set by full URI or Host:

A linked list of the .htaccess configuration directives accessed by this request. N.B. always add to the head of the list, _never_ to the end. that way, a sub request's list can (temporarily) point to a parent's list

A list of input filters to be used for this request

The optional kept body of the request.

Pointer to the main request if this is a sub-request (see http_request.h)

const char* request_rec::method

Request method (eg. GET, HEAD, POST, etc.)

M_GET, M_POST, etc.

Last modified time of the requested resource

Pointer to the redirected request if this is an external redirect

This response can not be cached

There is no local copy of this response

Notes from one module to another

A list of output filters to be used for this request

A struct containing the components of URI

The PATH_INFO extracted from this request

Options set in config files, etc.

The pool associated with the request

Pointer to the previous request if this is an internal redirect

A list of protocol level input filters to be used for this request

Protocol version number of protocol; 1.1 = 1001

A list of protocol level output filters to be used for this request

Protocol string, as given to us, or HTTP/0.9

A proxy request (calculated during post_read_request/translate_name) possible values PROXYREQ_NONE, PROXYREQ_PROXY, PROXYREQ_REVERSE, PROXYREQ_RESPONSE

const char* request_rec::range

The Range: header

Method for reading the request body (eg. REQUEST_CHUNKED_ERROR, REQUEST_NO_BODY, REQUEST_CHUNKED_DECHUNK, etc...)

reading chunked transfer-coding

Number of bytes that have been read from the request body

Remaining bytes left to read from the request body

Notes on *this* request

Time when the request started

byte count in stream is for body

The virtual host for this request

Status line

Status line, if set by script

Array of environment variables to be used for sub processes

First line of request

The URI without any parsing performed

The path portion of the URI

Flag for the handler to accept or reject path_info on the current request. All modules should respect the AP_REQ_ACCEPT_PATH_INFO and AP_REQ_REJECT_PATH_INFO values, while AP_REQ_DEFAULT_PATH_INFO indicates they may follow existing conventions. This is set to the user's preference upon HOOK_VERY_FIRST of the fixups.

If an authentication check was made, this gets set to the user name.

variant list validator (if negotiated)


The documentation for this struct was generated from the following file:

Generated by  doxygen 1.6.2