web服务器延迟服务文件请求


webserver serve file request with delay

我想知道是否有可能配置一个web服务器,以便对文件的请求将被延迟服务。因此,例如,如果我要服务这个文件http://www.example.url/picture.jpg,我希望数据传输开始仅2秒后的请求已作出…或者其他任意数。重要的一点是,这应该独立于文件的访问方式,所以仅仅一个html的解决方案是不可行的。

我在superuser.com上问了一下,那里的人建议我研究perl或php,以这种方式把一些东西放在一起,可以为我提供我需要的功能。我对上面提到的任何一种语言都没有任何经验,但我想把这些东西放在一起不会太复杂,我的问题是……有人能帮我开始吗?

感谢您的宝贵时间。

如果您正在使用Apache2和mod_perl,那么您可以使用其中一个handlers来执行此过滤。但是,即使以下面的代码为例,您也需要熟悉perl和服务器配置:

package ImgPause;
use Apache2::RequestRec();
use Apache2::Const -compile => qw(FORBIDDEN OK);
use strict;
use warnings;
our %images = (
    '/adesert.jpg'    => 4,
    '/afish.jpg'      => 4,
    '/aflower.jpg'    => 4,
    '/ahouse.jpg'     => 4,
    '/akoala.jpg'     => 4,
    '/apenguin.jpg'   => 4,
    '/atulip.jpg'     => 5,
)
sub handler {
    my $r = shift;
    my $host = $r->header_in('Host');
    my $uri = $r->uri;
    if ($images{$uri}) {
        sleep $images{$uri};
    }
    return Apache2::Const::OK;
}
1;
__END__