एक विज़िटर बटन क्लिक करता है। आपका PHP सर्वर किसी बाहरी API को कॉल करता है। API सर्वर का बाहर जाता कनेक्शन देखता है, या उस कनेक्शन के लिए कॉन्फ़िगर किए गए प्रॉक्सी का आउटपुट देखता है। विज़िटर का ब्राउज़र आपकी वेबसाइट से एक अलग कनेक्शन संभाल रहा है।

विज़िटर का पता किसी हेडर में कॉपी करने से PHP कनेक्शन विज़िटर के नेटवर्क पर नहीं जा सकता। हेडर वे डेटा हैं जो पहले से स्थापित कनेक्शन पर भेजे जाते हैं। कोई गंतव्य अपने एप्लिकेशन लॉजिक में भरोसेमंद फ़ॉरवर्डिंग हेडर का उपयोग कर सकता है, पर इससे हेडर का मान कनेक्शन का स्रोत पता नहीं बन जाता।

प्रॉक्सी को कनेक्शन स्वीकार करना होगा

PHP cURL को किसी दूसरी मशीन से भेजने के लिए उस मशीन को अनुरोध ले जाने की अनुमति वाली पहुँच योग्य प्रॉक्सी सेवा देनी होगी। PHP प्रक्रिया को उससे कनेक्ट कर पाना चाहिए। विज़िटर का सामान्य ब्राउज़र सत्र आपके सर्वर को ऐसा सामान्य-प्रयोजन प्रॉक्सी एंडपॉइंट नहीं देता।

libcurl का प्रॉक्सी विकल्प वह सेवा चुनता है जिससे cURL कनेक्ट करता है। यह किसी भी ब्राउज़र से उसकी ओर से अनुरोध शुरू करने को नहीं कह सकता।

ब्राउज़र अनुरोध एक अलग डिज़ाइन है

कुछ API के लिए ब्राउज़र सीधे गंतव्य को कॉल कर सकता है। इससे अनुरोध उपयोगकर्ता के नेटवर्क पथ पर आ जाता है, उनकी अपनी प्रॉक्सी कॉन्फ़िगरेशन के अधीन। इसके लिए ब्राउज़र क्लाइंट के लिए बनाया गया API भी चाहिए। क्रॉस-ओरिजिन एक्सेस CORS का पालन करता है, और ब्राउज़र कोड को भेजे गए क्रेडेंशियल उस क्लाइंट के लिए उपलब्ध हो जाते हैं।

प्रॉक्सी विकल्प चुनने से पहले तय करें कि अनुरोध कहाँ का है। सर्वर क्रेडेंशियल सर्वर पर ही रखें; जब सेवा समर्थन दे तो प्रलेखित ब्राउज़र एकीकरण का उपयोग करें। दोनों में से कोई डिज़ाइन सर्वर अनुरोध को विज़िटर की नेटवर्क पहचान विरासत में देने का भरोसेमंद शॉर्टकट नहीं देता।

संबंधित लेख