http दो कर्ल अनुरोधों के बीच कुकीज़ को सुरक्षित रखें



curl cookies (1)

एक कुकी में सहेजे गए कुकीज को बचाने के लिए --cookie-jar या --dump-header पैरामीटर का उपयोग करें। --cookie पैरामीटर बाद में उस फ़ाइल की कुकीज़ को वापस पढ़ सकते हैं

-बी, --कुकी <name = data>

(HTTP) कुकी के रूप में HTTP सर्वर पर डेटा पास करें ऐसा माना जाता है कि "सेट-कुकी:" लाइन में पहले सर्वर से डेटा प्राप्त हुआ था। डेटा "NAME1 = VALUE1; NAME2 = VALUE2" प्रारूप में होना चाहिए

यदि लाइन में 'no' = 'प्रतीक का उपयोग किया जाता है, तो इसे पहले से संग्रहीत कुकी लाइनों को पढ़ने के लिए उपयोग करने के लिए फ़ाइल नाम के रूप में माना जाता है , जो इस सत्र में उपयोग किए जाने चाहिए यदि वे मेल खाते हैं इस पद्धति का उपयोग करने से कुकी इंजन को भी सक्रिय किया जा सकता है जो आने वाली इनकमिंग कुकीज़ को भी कर्ल कर देगा, जो कि अगर आप इसे -L, -location विकल्प के साथ संयोजन में उपयोग कर रहे हैं तो यह आसान हो सकता है। कुकीज को पढ़ने के लिए फ़ाइल का फ़ाइल स्वरूप सादा HTTP शीर्षलेख (सेट-कुकी शैली) या नेटस्केप / मोज़िला कुकी फ़ाइल प्रारूप होना चाहिए।

-बी, --cookie के साथ निर्दिष्ट फाइल का प्रयोग केवल इनपुट के रूप में किया जाता है। फ़ाइल में कोई कुकी नहीं लिखी जाएगी कुकीज़ संग्रहित करने के लिए, -c, --cookie-jar विकल्प का उपयोग करें

अगर आप इस विकल्प का उपयोग कर रहे हैं तो सावधानी बरतें और कई स्थानान्तरण हो सकते हैं। यदि आप NAME1 = VALUE1 का उपयोग करते हैं; प्रारूप या किसी फ़ाइल में सेट-कुकी प्रारूप का उपयोग करें और कोई डोमेन निर्दिष्ट न करें, फिर किसी भी डोमेन के लिए कुकी भेजी जाती है (रीडायरेक्ट का पालन करने के बाद भी) और एक सर्वर-सेट कुकी द्वारा संशोधित नहीं किया जा सकता यदि कुकी इंजन सक्षम है और एक सर्वर एक ही नाम की कुकी सेट करता है तो दोनों को उस सर्वर पर भावी हस्तांतरण पर भेजा जाएगा, संभवत: आपके इरादे से नहीं। इन समस्याओं का समाधान करने के लिए सेट-कुकी में एक डोमेन सेट करना (जिसमें उप-डोमेन शामिल होंगे) या नेटस्केप प्रारूप का उपयोग करें।

यदि यह विकल्प कई बार उपयोग किया जाता है, तो अंतिम उपयोग किया जाएगा।

-सी, --कुकी-जार <फ़ाइल नाम>

(एचटीटीपी) निर्दिष्ट करें कि आप किस फाइल को पूर्ण कार्रवाई के बाद सभी कुकीज़ लिखने के लिए कर्ल चाहते हैं। कर्ल एक निर्दिष्ट फ़ाइल से पहले पूरी तरह से पढ़े गए सभी कुकीज़ लिखते हैं साथ ही दूरस्थ सर्वर से प्राप्त सभी कुकीज । अगर कोई कुकीज़ ज्ञात नहीं हैं, तो कोई डेटा नहीं लिखा जाएगा। फ़ाइल को नेटस्केप कुकी फ़ाइल स्वरूप का उपयोग करते हुए लिखा जाएगा। यदि आप फ़ाइल का नाम एकल डैश में सेट करते हैं, तो "-" कुकीज़ को stdout पर लिखा जाएगा।

यह कमांड लाइन ऑप्शन कुकी इंजन को सक्रिय करेगा जो कर्ल रिकॉर्ड और कुकीज़ का उपयोग करता है। इसे सक्रिय करने का एक अन्य तरीका -b, --cookie विकल्प का उपयोग करना है।

अगर कुकी जार बनाया या लिखा नहीं जा सकता है, तो पूरे कर्ल ऑपरेशन विफल नहीं होगा या कोई त्रुटि स्पष्ट रूप से रिपोर्ट नहीं करेगा। उपयोग -V को एक चेतावनी दिखाई जाएगी, लेकिन यह संभवतः घातक स्थिति के बारे में आपको एकमात्र दिखाई देने वाली प्रतिक्रिया है।

चूंकि 7.43.0 कुकी जो सेट-कुकी प्रारूप में डोमेन नाम के बिना आयात की गई थी, इस विकल्प द्वारा निर्यात नहीं की जाती हैं।

यदि यह विकल्प कई बार उपयोग किया जाता है, तो अंतिम निर्दिष्ट फ़ाइल नाम का उपयोग किया जाएगा।

-D, --dump-header <file>

निर्दिष्ट फ़ाइल में प्रोटोकॉल हेडर लिखें

यह विकल्प उपयोग करने के लिए आसान होता है जब आप हेडर्स को संग्रहीत करना चाहते हैं जो एक HTTP साइट आपको भेजता है। हेडर से कुकीज़ को फिर से -बी, - कुकी विकल्प का उपयोग करके एक दूसरे कर्ल आमंत्रण में पढ़ा जा सकता है! -सी, - कुकी-जार विकल्प कुकीज को स्टोर करने का एक बेहतर तरीका है

जब एफ़टीपी में इस्तेमाल किया जाता है, तो एफ़टीपी सर्वर प्रतिक्रिया पंक्तियों को "हेडर" माना जाता है और इस प्रकार इसे वहां सहेजा जाता है

यदि यह विकल्प कई बार उपयोग किया जाता है, तो अंतिम उपयोग किया जाएगा

वैकल्पिक रूप से, कमांड लाइन के कर्ल ऐप का उपयोग करने के बजाय, कुछ कोड लिखें जो libCurl लाइब्रेरी का उपयोग करता है। इससे आपको कुकी से निपटने पर अधिक प्रत्यक्ष नियंत्रण मिलेगा। libCurl में HTTP कुकीज़ से संबंधित कई विशेषताएं हैं:

curl_easy_getinfo() लिए विकल्प:

  • CURLINFO_COOKIELIST - सभी ज्ञात कुकीज़ प्राप्त करें

curl_easy_setopt() विकल्प:

  • CURLOPT_COOKIE - HTTP कुकी शीर्षलेख की सामग्री सेट करें

  • CURLOPT_COOKIEFILE - से फ़ाइल को पढ़ने के लिए फ़ाइल नाम

  • CURLOPT_COOKIEJAR - फाइल नाम को कुकीज़ को संग्रहीत करने के लिए

  • CURLOPT_COOKIESESSION - एक नया कुकी सत्र प्रारंभ करें

  • CURLOPT_COOKIELIST - मेमोरी में रखे गए कुकीज़ में जोड़ें या हेरफेर करें

उसके बाद आप चाहते हैं कि कुकीज़ को संग्रहीत कर सकते हैं, और बाद में एचटीटीपी सत्रों के लिए उन्हें आवंटित कर सकते हैं।

मुझे पता है कि cURL का उपयोग करके मैं अपनी प्राप्त कुकीज / हेडर का उपयोग करके देख सकता हूँ

curl --head www.google.com

और मुझे पता है कि मैं हेडर का उपयोग करके अपने अनुरोध पर हेडर जोड़ सकता हूं

curl --cookie "Key=Value" www.google.com

मैं वर्तमान में एक समस्या का परीक्षण करने के लिए काम कर रहा हूं जिसके लिए लगातार कुकीज की आवश्यकता है, और उनमें से बहुत कुछ हो सकता है

मैं दो cURL अनुरोधों के बीच कुकीज़ को कुशलतापूर्वक कैसे सुरक्षित कर सकता हूं?

यदि भंडारण के लिए एक अस्थायी फ़ाइल का उपयोग करना संभव है





header