当会话Cookie过期时使用cURL

5
通常,在使用浏览器时,会话cookie在关闭浏览器窗口时过期。
但是,在使用(php)cURL(并设置COOKIE_FILE和COOKIE_JAR选项)时,它们保持多长时间?
1个回答

0
根据mozilla.org的说法:

会话cookie(session cookie)[...]在客户端关闭时被删除,因为它没有指定过期时间或最大年龄指令。然而,Web浏览器可能使用会话恢复,使大多数会话cookie永久存在,就好像浏览器从未关闭过一样。

根据curl_setopt函数的文档所述:

默认情况下,libcurl始终存储和加载所有cookie,无论它们是否为会话cookie。 会话cookie是没有到期日期的cookie,它们只存在于这个“会话”中。

如果您使用以下方式将cookie保存到指定文件中:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://stackoverflow.com');
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');
$output = curl_exec($ch);
curl_close($ch);

然后,从客户端的角度来看,只要使用正确的cookie设置CURLOPT_COOKIEJAR,会话将保持活动状态。这是您脚本的选择。


我认为会话cookie在curl_close($ch)时过期。 - Entretoize
@Entretoize 但是curl_setopt函数的文档与您想象的不同。 - Ortomala Lokni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接