当会话Cookie使用cURL过期时
问题描述:
通常,当使用浏览器时,会话cookie在浏览器窗口关闭时过期。当会话Cookie使用cURL过期时
但是,当使用(PHP)cURL(和设置COOKIE_FILE
和COOKIE_JAR
选项),他们多久活着?
答
根据mozilla.org:
会话cookie [...]当客户端关闭被删除,因为它没有指定一个过期或Max-age指令。但是,Web浏览器可能会使用会话恢复,这会使大多数会话Cookie永久化,就好像浏览器从未关闭一样。
按照documentation of curl_setopt
功能:
默认情况下,的libcurl总是存储和加载所有Cookie,独立的,如果他们是会话cookie与否。会话cookie是没有过期日期的cookies,它们只是为了存活并存在于“会话”中。
如果您保存在指定文件与
$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。这是您的脚本的选择。
我认为会话cookie在curl_close($ ch)上过期; – Entretoize 2017-07-12 08:55:21
@Entretoize,但[curl_setopt函数](https://secure.php.net/manual/en/function.curl-setopt.php)的文档与您的想法不同。 – 2017-09-10 07:28:41