我正在尝试从无Cookie域提供静态内容。我为此目的创建了一个单独的域(不是具有CNAME设置的子域等),并创建了一个简单的PHP文件,用于测试抓取图像文件的检索时间差异,在本例中为相同的图像10,000次:
<?php
echo '<!DOCTYPE html>';
// Here I can toggle between grabbing the static content from the static domain with the specially edited .htaccess file, or from the main domain, just by remming out one line and unremming the other:
$source = "http://MY-STATIC-DOMAIN.com/";
//$source = "http://MY-DYNAMIC-DOMAIN.COM/"
$before = microtime(true);
$output = '<img style="display: none;" src="' . $source . 'images/TEST-IMAGE.jpeg " height="400" width="311"/>';
for ($i=0 ; $i<10000 ; $i++) {
echo $output;
}
$after = microtime(true);
$timex = ($after-$before);
echo $timex;
?>
诀窍是配置静态域不接收cookie(RIGHT?)更好的是将原始/动态域配置为不发送cookie的方法,但是我看不到这样做的方法逐案(或特别是任何内联代码,这似乎是理想的......有一个名为PRIVOXY的第三方Web代理似乎提供了这种好处,但我宁愿不必依赖关于我可以直接在.htaccess文件中编码的任何内容。)
在任何情况下,只有通过编辑STATIC域的.htaccess文件才能在线获取有关如何执行此操作的信息,并且.htaccess文件的建议代码运行起来非常简单:
Header unset Cookie
Header unset Set-Cookie
......令人头疼的复杂:
# Use Mod_deflate to compress static files
<ifmodule mod_deflate.c>
<filesmatch ".(js|css|ico|txt|htm|html|php)$">
SetOutputFilter DEFLATE
</filesmatch>
</ifmodule>
# Speed up caching
FileETag MTime Size
# Expires
ExpiresActive On
ExpiresDefault "access plus 366 days"
# Future Expires Headers
<filesmatch ".(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Expires "Sat, 27 Dec 2014 23:59:59 GMT"
</filesmatch>
然而,无论我将哪个指令放入STATIC域的.htaccess文件中,该文件包含我在测试中反复调用的JPEG文件,时间差异可以忽略不计,在某些情况下检索静态内容来自原点/动态网站的速度更快。
我是否错误地设计了我的测试文件?或者是否有比上面两个竞争对手更好的.htaccess指令集(我发现其他人......我已经在我的本地服务器和我的实际网站上测试了几个小时)。
我还阅读了这项研究,其中似乎证明从主域本身提供缩小的.CSS文件比从静态域中检索它们更快,但作者在文章结论时承认图像仍然存在来自静态域的最佳服务:
http://www.jonathanklein.net/2014/02/revisiting-cookieless-domain.html
非常感谢任何可以指出我正确方向的大师(特别是关于不首先发送带有内容请求的cookie,这将受益于HTML中的内联命令,我我想估计。)