cURL -- 饼干和会话


cURL -- cookies and sessions

我想了解 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: