Подтвердить что ты не робот

CURL - файлы cookie и сеансы

Я хотел бы понять четыре варианта cURL для файлов cookie:

CURLOPT_COOKIESESSION  
CURLOPT_COOKIEFILE
CURLOPT_COOKIEJAR
CURLOPT_COOKIE

Я понимаю, что COOKIEJAR предназначен для написания файлов cookie, а COOKIEFILE предназначен для чтения. Итак, что такое COOKIESESSION для? CURLOPT_COOKIE является обычным, но могу ли я использовать его для поддержки сеанса с сервером?

4b9b3361

Ответ 1

Чтобы понять 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: с исходным значением, которое у вас было.