Net::Server::HTTP(3) User Contributed Perl Documentation Net::Server::HTTP(3)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.
"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.5 2010-07-13 Net::Server::HTTP(3)