【发布时间】:2015-03-31 01:12:37
【问题描述】:
通常,使用浏览器时,会话 cookie 会在浏览器窗口关闭时过期。
但是当使用 (php) cURL(并设置COOKIE_FILE 和COOKIE_JAR 选项)时,它们可以存活多久?
【问题讨论】:
标签: php curl cookies session-cookies
通常,使用浏览器时,会话 cookie 会在浏览器窗口关闭时过期。
但是当使用 (php) cURL(并设置COOKIE_FILE 和COOKIE_JAR 选项)时,它们可以存活多久?
【问题讨论】:
标签: php curl cookies session-cookies
根据mozilla.org:
会话 cookie [...] 在客户端关闭时被删除,因为它没有指定 Expires 或 Max-Age 指令。但是,网络浏览器可能会使用会话恢复,这会使大多数会话 cookie 永久化,就好像浏览器从未关闭过一样。
根据documentation of 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,会话就会处于活动状态。这是您的脚本的选择。
【讨论】: