我写了一个简短的Perl脚本,列出了网站的当前Cookie,但不知怎的,它报告了Cookie的domain
和expires
为空。 我做错了什么或者我误解了Cookie背后的机制?
我的最终目标是能够使用按钮删除现有的cookie。
该脚本是实时的here,但如果您首先访问我的blog,那么它可能会有所帮助,因此实际上会设置一些Cookie。这是我的源代码:
use warnings;
use strict;
use CGI::Cookie;
my $table;
my %cookies = CGI::Cookie->fetch;
if ( keys %cookies ) {
$table .= "<table border=\"3\" cellpadding=\"5\">";
$table .= "<caption>COOKIES</caption>";
$table .= "<tr><th>Name</th><th>Domain</th><th>Path</th><th>Expires</th>
<th align=\"left\">Value</th></tr>";
foreach my $cookie ( keys %cookies ) {
$table .= "<tr>";
$table .= "<td>$cookie</td>";
$table .= "<td>" . $cookies{ $cookie }->domain() . "</td>";
$table .= "<td>" . $cookies{ $cookie }->path . "</td>";
$table .= "<td>" . $cookies{ $cookie }->expires . "</td>";
$table .= "<td>" . $cookies{ $cookie }->value . "</td>";
$table .= "</tr>";
}
$table .= "</table>";
}
print "Content-Type: text/html\n\n";
print "<html>\n";
print "<head></head>\n";
print "<body>\n";
print "$table";
print "</body>\n";
print "</html>\n";
无论我安装脚本的各个网站上的各种cookie,输出都是这样的,Domain和Expires总是空的:
+-----------------------------------------------------------------------------------------+
| Name | Domain | Path | Expires | Value |
|---------------+--------+------+---------+-----------------------------------------------|
| bb2_screener_ | | / | | 1379007156 2001:980:1b7f:1:a00:27ff:fea6:a2e7 |
+-----------------------------------------------------------------------------------------+
答案 0 :(得分:1)
浏览器不向服务器提供有关他们发送的cookie的任何元信息。他们甚至没有办法发送它。浏览器发送的内容如下所示:
Cookie: a=b; c=d; e=f