logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

HTTP::Proxy::HeaderFilter - A base class for HTTP message header filters

Author

       Philippe "BooK" Bruhat, <book@cpan.org>.

Description

       The HTTP::Proxy::HeaderFilter class is used to create filters for HTTP request/response headers.

   CreatingaHeaderFilter
       A HeaderFilter is just a derived class that implements some methods called by the proxy. Of all the
       methods presented below, only filter() must be defined in the derived class.

       filter()
           The signature of the filter() method is the following:

               sub filter { my ( $self, $headers, $message) = @_; ... }

           where  $self  is  the  filter  object,  $headers  is a HTTP::Headers object, and $message is either a
           HTTP::Request or a HTTP::Response object.

           The $headers HTTP::Headers object is the one that will be sent to the client (if the filter is on the
           response stack) or origin server (if the filter is on the request stack). If $headers is modified  by
           the filter, the modified headers will be sent to the client or server.

           The  init()  method (if it exists) is called by the new() constructeur to perform all initisalisation
           tasks. It's called once in the filter lifetime.

           A HTTP::Proxy::HeaderFilter object is a blessed hash, and the base class reserves only hash keys that
           start with "_hphf".

       new()
           The constructor is defined for all subclasses. Initialisation tasks (if any) for subclasses should be
           done in the init() method (see below).

       init()
           This method is called by the new() constructeur to perform all  initisalisation  tasks.  It's  called
           once in the filter lifetime.

           It receives all the parameters passed to new().

   StandardHeaderFilters
       Standard HTTP::Proxy::HeaderFilter classes are lowercase.

       The following HeaderFilters are included in the HTTP::Proxy distribution:

       simple
           This class lets you create a simple header filter from a code reference.

       standard
           This  is  the  filter  that  provides  standard  headers  handling  for  HTTP::Proxy.   It  is loaded
           automatically by HTTP::Proxy.

       Please read each filter's documentation for more details about their use.

License

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

perl v5.40.1                                       2025-02-18                     HTTP::Proxy::HeaderFilter(3pm)

Name

       HTTP::Proxy::HeaderFilter - A base class for HTTP message header filters

See Also

       HTTP::Proxy, HTTP::Proxy::BodyFilter.

Synopsis

           package MyFilter;

           use base qw( HTTP::Proxy::HeaderFilter );

           # changes the User-Agent header in all requests
           # this filter must be pushed on the request stack
           sub filter {
               my ( $self, $headers, $message ) = @_;

               $message->headers->header( User_Agent => 'MyFilter/1.0' );
           }

           1;

Useful Methods For Subclasses

       Some methods are available to filters, so that they can eventually use the little  knowledge  they  might
       have of HTTP::Proxy's internals. They mostly are accessors.

       proxy()
           Gets  a  reference to the HTTP::Proxy objects that owns the filter.  This gives access to some of the
           proxy methods.

See Also