HTTP-Message-6.03 > HTTP::Config
Other versions:


HTTP::Config - Configuration for request and response objects

HTTP::Config - リクエストおよびレスポンスオブジェクトの構成


 use HTTP::Config;
 my $c = HTTP::Config->new;
 $c->add(m_domain => "", m_scheme => "http", verbose => 1);
 use HTTP::Request;
 my $request = HTTP::Request->new(GET => "");
 if (my @m = $c->matching($request)) {
    print "Yadayada\n" if $m[0]->{verbose};


An HTTP::Config object is a list of entries that can be matched against request or request/response pairs. Its purpose is to hold configuration data that can be looked up given a request or response object.

HTTP::Config オブジェクトは、リクエストまたはリクエスト/レスポンスの ペアに一致するエントリのリストです。 その目的は、リクエストまたはレスポンスオブジェクトを指定して検索できる 構成データを保持することです。

Each configuration entry is a hash. Some keys specify matching to occur against attributes of request/response objects. Other keys can be used to hold user data.

各構成エントリはハッシュです。 一部のキーは、リクエスト/レスポンスオブジェクトの属性に対して起きる 一致を指定します。 その他のキーは、ユーザーデータの保持に使えます。

The following methods are provided:


$conf = HTTP::Config->new

Constructs a new empty HTTP::Config object and returns it.

新しい空の HTTP::Config オブジェクトを作成して返します。


Returns the list of entries in the configuration object. In scalar context returns the number of entries.

構成オブジェクト内のエントリのリストを返します。 スカラコンテキストでは、エントリの数を戻します。


Return true if there are no entries in the configuration object. This is just a shorthand for not $conf->entries.

構成オブジェクトにエントリがない場合に真を返します。 これは not $conf->entries の省略形です。

$conf->add( %matchspec, %other )
$conf->add( \%entry )

Adds a new entry to the configuration. You can either pass separate key/value pairs or a hash reference.

新しいエントリを構成に追加します。 個別のキーと値のペアまたはハッシュリファレンスを渡すことができます。

$conf->remove( %spec )

Removes (and returns) the entries that have matches for all the key/value pairs in %spec. If %spec is empty this will match all entries; so it will empty the configuation object.

%spec 内のすべてのキー/値ペアに一致するエントリを削除して、それを返します。 %spec が空の場合、これはすべてのエントリに一致するため、 構成オブジェクトが空になります。

$conf->matching( $uri, $request, $response )
$conf->matching( $uri )
$conf->matching( $request )
$conf->matching( $response )

Returns the entries that match the given $uri, $request and $response triplet.

指定された $uri, $request, $response の組み合わせに一致するエントリを 返します。

If called with a single $request object then the $uri is obtained by calling its 'uri_canonical' method. If called with a single $response object, then the request object is obtained by calling its 'request' method; and then the $uri is obtained as if a single $request was provided.

単一の $request オブジェクトで呼び出された場合、 $uri は 'uri_canonical' メソッドを呼び出すことで 取得されます。 単一の $response オブジェクトで呼び出された場合、'request' メソッドを 呼び出すことでリクエストオブジェクトが取得され、単一の $request が 提供された場合と同様に $uri が取得されます。

The entries are returned with the most specific matches first. In scalar context returns the most specific match or undef in none match.

エントリは、最も具体的に一致したものを最初に返します。 スカラコンテキストでは、最も具体的に一致したものを返します。 一致しない場合は undef を返します。

$conf->add_item( $item, %matchspec )
$conf->remove_items( %spec )
$conf->matching_items( $uri, $request, $response )

Wrappers that hides the entries themselves.



The following keys on a configuration entry specify matching. For all of these you can provide an array of values instead of a single value. The entry matches if at least one of the values in the array matches.

構成エントリの次のキーは、一致を指定します。 これら全てに対して、単一の値ではなく値の配列を指定できます。 配列内の値の少なくとも一つが一致する場合、エントリは一致します。

Entries that require match against a response object attribute will never match unless a response object was provided.

レスポンスオブジェクト属性との一致を必要とする項目は、 レスポンスオブジェクトが提供されない限り一致しません。

m_scheme => $scheme

Matches if the URI uses the specified scheme; e.g. "http".

URI が指定されたスキーム("http" など) を使う場合に一致します。

m_secure => $bool

If $bool is TRUE; matches if the URI uses a secure scheme. If $bool is FALSE; matches if the URI does not use a secure scheme. An example of a secure scheme is "https".

$bool が真の場合、URI がセキュリティで保護されたスキームを使っている場合に 一致します。 $bool が偽の場合、URI がセキュリティで保護されたスキームを使っていない場合に 一致します。 セキュリティで保護されたスキームの例は "https" です。

m_host_port => "$hostname:$port"

Matches if the URI's host_port method return the specified value.

URI の host_port メソッドが指定された値を返す場合に一致します。

m_host => $hostname

Matches if the URI's host method returns the specified value.

URI の host メソッドが指定された値を返す場合に一致します。

m_port => $port

Matches if the URI's port method returns the specified value.

URI の port メソッドが指定された値を返す場合に一致します。

m_domain => ".$domain"

Matches if the URI's host method return a value that within the given domain. The hostname "" will for instance match the domain ".com".

URI の host メソッドが、指定されたドメイン内の値を返す場合に一致します。 たとえば、ホスト名 "" は、ドメイン ".com" と一致します。

m_path => $path

Matches if the URI's path method returns the specified value.

URI の path メソッドが指定された値を返す場合に一致します。

m_path_prefix => $path

Matches if the URI's path is the specified path or has the specified path as prefix.

URI のパスが指定されたパスである場合、または指定されたパスを 接頭辞として持つ場合に一致します。

m_path_match => $Regexp

Matches if the regular expression matches the URI's path. Eg. qr/\.html$/.

正規表現が URI のパスと一致する場合に一致します。 例: qr/\.html$/。

m_method => $method

Matches if the request method matches the specified value. Eg. "GET" or "POST".

リクエストメソッドが指定された値と一致する場合に一致します。 例: "GET" や "POST"。

m_code => $digit
m_code => $status_code

Matches if the response status code matches. If a single digit is specified; matches for all response status codes beginning with that digit.

応答ステータスコードが一致する場合に一致します。 1 桁が指定されている場合は、その桁で始まるすべての応答ステータスコードに 一致します。

m_proxy => $url

Matches if the request is to be sent to the given Proxy server.


m_media_type => "*/*"
m_media_type => "text/*"
m_media_type => "html"
m_media_type => "xhtml"
m_media_type => "text/html"

Matches if the response media type matches.


With a value of "html" matches if $response->content_is_html returns TRUE. With a value of "xhtml" matches if $response->content_is_xhtml returns TRUE.

"html" の値は、$response->content_is_html が真を返す場合に一致します。 "xhtml" の値は、$response->content_is_xhtml が真を返す場合に一致します。

m_uri__$method => undef

Matches if the URI object provides the method.

URI オブジェクトがこのメソッドを提供する場合に一致します。

m_uri__$method => $string

Matches if the URI's $method method returns the given value.

URI の $method メソッドが指定された値を返す場合に一致します。

m_header__$field => $string

Matches if either the request or the response have a header $field with the given value.

リクエストまたはレスポンスのいずれかに、指定された値を持つ ヘッダ $field がある場合に一致します。

m_response_attr__$key => undef
m_response_attr__$key => $string

Matches if the response object has that key, or the entry has the given value.

応答オブジェクトにそのキーがある場合、またはエントリに 指定された値がある場合に一致します。


URI, HTTP::Request, HTTP::Response


Copyright 2008, Gisle Aas

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.