Я хотел бы понять четыре варианта cURL для файлов cookie:
CURLOPT_COOKIESESSION CURLOPT_COOKIEFILE CURLOPT_COOKIEJAR CURLOPT_COOKIE
Я понимаю, что COOKIEJAR
предназначен для написания файлов cookie, а COOKIEFILE
предназначен для чтения. Итак, для чего предназначена COOKIESESSION
? CURLOPT_COOKIE
является CURLOPT_COOKIE
, но могу ли я использовать его для поддержки сеанса с сервером?
Чтобы понять CURLOPT_COOKIESESSION
, вам нужно знать пару вещей о куках. Cookies имеют даты истечения срока действия, установленные веб-сайтом, который выдает cookie. Если дата истечения срока действия файла cookie прошла, браузер / клиент не отправит его, и он будет удален клиентом. Если cookie установлен без даты истечения срока действия, браузер должен использовать этот файл cookie, пока сеанс браузера не будет закрыт, или пользователь не выйдет из системы, и cookie не будет отменен.
Тем не менее, CURLOPT_COOKIESESSION
– это способ заставить cURL имитировать закрытие браузера. Если у COOKIEFILE
есть файлы cookie сеанса (файлы cookie без истечения срока действия), они обычно отправляют их, если они присутствуют в файле. Если вы установите CURLOPT_COOKIESESSION
, он НЕ отправит ни одно из файлов cookie, у которых нет даты истечения срока действия.
CURLOPT_COOKIE
просто дает вам возможность установить данные cookie, которые будут отправляться на сервер в необработанном формате. Это полезно, если, например, у вас есть обычный HTTP-файл cookie, который вы хотите отправить. Без этой опции вам нужно будет получить эти файлы cookie в COOKIEFILE
или установить настраиваемый HTTP-заголовок Cookie:
с необработанным значением, которое у вас было.