Perl ETag加载,而不仅仅是重新加载
我试图在图像上设置一个ETag,以便使用Perl/Mason进行跟踪 首先创建一个etag.m:Perl ETag加载,而不仅仅是重新加载,perl,caching,etag,mason,Perl,Caching,Etag,Mason,我试图在图像上设置一个ETag,以便使用Perl/Mason进行跟踪 首先创建一个etag.m: <%init> warn "Start ETag"; my $request_header = $r->headers_in(); my $etag = $request_header->{'If-None-Match'}; warn "Trace Etag: $request_header->{'If-None-Match'}";
<%init>
warn "Start ETag";
my $request_header = $r->headers_in();
my $etag = $request_header->{'If-None-Match'};
warn "Trace Etag: $request_header->{'If-None-Match'}";
unless ($etag) {
warn "Set Etag";
$r->status(302);
$r->headers_out->{'Location'} = "/images/etag.gif";
$r->headers_out->{'Cache-Control'} = 'public';
$r->headers_out->{'ETag'} = $user->{uid};
my $gmt_mtime = HTTP::Date::time2str(time());
$r->headers_out->{'Last-Modified'} = $gmt_mtime;
}
</%init>
我在另一个文件test_etag.m中使用了它:
<img src="etag.m">
在清除缓存后第一次调用test_etag.m时,我可以看到警告,etag是空的。每次下一次调用,a都看不到任何警告,因此我认为图像已缓存。只有在重新加载F5时,才会找到相应的ETag并显示在警告中
我如何获得ETag,它是在每次加载时第一次设置的,而不仅仅是在重新加载时设置的?这是在使用模块吗?