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::Server::Simple::Static - Serve static files with HTTP::Server::Simple

Author

       Stephen Quinney "sjq-perl@jadevine.org.uk"

       Thanks to Marcus Ramberg "marcus@thefeed.no" and Simon Cozens for initial implementation.

Bugs And Limitations

       Bugs or wishlist requests should be submitted via http://rt.cpan.org/

Dependencies

       The  File::LibMagic  module is used to detect the MIME-type of a file. The URI::Escape module is used for
       URI handling. The HTTP::Date module is used to format the timestamp in the Last-Modified HTTP header.

Description

       this mixin adds a method to serve static files from your HTTP::Server::Simple subclass.

Name

       HTTP::Server::Simple::Static - Serve static files with HTTP::Server::Simple

See Also

       HTTP::Server::Simple, HTTP::Server::Simple::CGI

Subroutines/Methods

       serve_static( $cgi, $base )
           Takes  a  reference  to  the  CGI  object and a document root path, and tries to serve a static file.
           Returns 0 if the file does not exist, returns 1 on success.

           This method sets the "Date" and "Last-Modified" HTTP headers when sending  a  response  for  a  valid
           file.  Further  to this, the method supports clients which send an "If-Modified-Since" HTTP header in
           the request, it will return a 304 "Not Modified" response if the file is unchanged. See RFC-2616  for
           full details.

           If the client makes a "HEAD" request then no message body will be returned in the response.

Synopsis

           package MyServer;

           use base qw(HTTP::Server::Simple::CGI);
           use HTTP::Server::Simple::Static;

           my $webroot = '/var/www';

           sub handle_request {
               my ( $self, $cgi ) = @_;

               if ( !$self->serve_static( $cgi, $webroot ) ) {
                   print "HTTP/1.0 404 Not found\r\n";
                   print $cgi->header,
                         $cgi->start_html('Not found'),
                         $cgi->h1('Not found'),
                         $cgi->end_html;
               }
           }

           package main;

           my $server = MyServer->new();
           $server->run();

Version

       This documentation refers to HTTP::Server::Simple::Static version 0.13

See Also