我想了解 cURL for cookie 的四个选项:
CURLOPT_COOKIESESSION
CURLOPT_COOKIEFILE
CURLOPT_COOKIEJAR
CURLOPT_COOKIE
我知道COOKIEJAR
是用来写饼干的,COOKIEFILE
是用来阅读的。那么COOKIESESSION
有什么用呢?CURLOPT_COOKIE
是自定义的,但我可以使用它来维护与服务器的会话吗?
要理解CURLOPT_COOKIESESSION
,您需要了解一些关于cookie的事情。 Cookie 的到期日期由发布 Cookie 的网站设置。 如果 cookie 的到期日期已过,浏览器/客户端将不会发送它,并且它将被客户端删除。 如果 Cookie 设置为无到期日期,则浏览器应使用该 Cookie,直到浏览器会话关闭,或者用户注销且 Cookie 未设置。
也就是说,CURLOPT_COOKIESESSION
是一种让 cURL 模拟关闭浏览器的方法。 如果COOKIEFILE
中有一些会话 Cookie(没有过期的 Cookie),如果文件中存在这些 Cookie,它通常会发送这些 cookie。 如果您设置CURLOPT_COOKIESESSION
,则它不会发送任何没有到期日期的 cookie。
CURLOPT_COOKIE
只是为您提供了一种设置将以原始格式发送到服务器的cookie数据的方法。 例如,如果您有一个想要发送的原始 HTTP cookie,这将非常有用。 如果没有此选项,则必须将这些cookie放入COOKIEFILE
,或使用原始值设置自定义HTTP标头Cookie:
。