


Net::Server::HTUserpContributed Perl DocumenNet::Server::HTTP(3p)


NAME
       Net::Server::HTTP - very basic Net::Server based HTTP server class

TEST ONE LINER
           perl -e 'use Net::Server::HTTP; Net::Server::HTTP->run(port=>8080)'

SYNOPSIS
           use base qw(Net::Server::HTTP);
           __PACKAGE__->run;

           sub process_http_request {
               my $self = shift;

               print "Content-type: text/html\n\n";
               print "<form method=post action=/bam><input type=text name=foo><input type=submit></form>\n";

               if (require Data::Dumper) {
                   local $Data::Dumper::Sortkeys = 1;
                   my $form = {};
                   if (require CGI) {  my $q = CGI->new; $form->{$_} = $q->param($_) for $q->param;  }
                   print "<pre>".Data::Dumper->Dump([\%ENV, $form], ['*ENV', 'form'])."</pre>";
               }
           }

DESCRIPTION
       Even though Net::Server::HTTP doesn't fall into the normal parallel of
       the other Net::Server flavors, handling HTTP requests is an often
       requested feature and is a standard and simple protocol.

       Net::Server::HTTP begins with base type MultiType defaulting to
       Net::Server::Fork.  It is easy to change it to any of the other
       Net::Server flavors by passing server_type => $other_flavor in the
       server configurtation.  The port has also been defaulted to port 80 -
       but could easily be changed to another through the server
       configuration.

METHODS
       "process_http_request"
           During this method, the %ENV will have been set to a standard CGI
           style environment.  You will need to be sure to print the Content-
           type header.  This is one change from the other standard
           Net::Server base classes.

           During this method you can read from ENV and STDIN just like a
           normal HTTP request in other web servers.  You can print to STDOUT
           and Net::Server will handle the header negotiation for you.

           Note: Net::Server::HTTP has no concept of document root or script
           aliases or default handling of static content.  That is up to the
           consumer of Net::Server::HTTP to work out.

           Net::Server::HTTP comes with a basic ENV display installed as the
           default process_request method.




perl v5.12.2                2010-07-13                          1





Net::Server::HTUserpContributed Perl DocumenNet::Server::HTTP(3p)


       "process_request"
           This method has been overridden in Net::Server::HTTP - you should
           not use it while using Net::Server::HTTP.  This method parses the
           environment and sets up request alarms and handles dying failures.
           It calls process_http_request once the request is ready.

       "send_status"
           Takes an HTTP status and a message.  Sends out the correct headers.

       "send_501"
           Calls send_status with 501 and the argument passed to send_501.

COMMAND LINE ARGUMENTS
       In addition to the command line arguments of the Net::Server base
       classes you can also set the following options.

       max_header_size
           Defaults to 100_000.  Maximum number of bytes to read while parsing
           headers.

       server_revision
           Defaults to Net::Server::HTTP/$Net::Server::VERSION.

       timeout_header
           Defaults to 15 - number of seconds to wait for parsing headers.

       timeout_idle
           Defaults to 60 - number of seconds a request can be idle before the
           request is closed.

TODO
       Add support for writing out HTTP/1.1.

AUTHOR
       Paul T. Seamons paul@seamons.com

THANKS
       See Net::Server

SEE ALSO
       Please see also Net::Server::Fork, Net::Server::INET,
       Net::Server::PreFork, Net::Server::PreForkSimple,
       Net::Server::MultiType, Net::Server::Single Net::Server::SIG
       Net::Server::Daemonize Net::Server::Proto

POD ERRORS
       Hey! The above document had some coding errors, which are explained
       below:

       Around line 292:
           You forgot a '=back' before '=head1'






perl v5.12.2                2010-07-13                          2


