HTTP_PROXY, HTTPS_PROXY और NO_PROXY पर्यावरण चर मानक हैं?


25

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

  • HTTP प्रॉक्सी
  • https_proxy
  • no_proxy

मै सिर्फ जानना चाहता हूँ:

  • क्या ये पर्यावरण चर मानक हैं?
  • क्या एक लिखित विनिर्देश (OS निर्माताओं द्वारा हो सकता है?) जो इन पर्यावरण चर के उपयोग की सिफारिश करता है।

1
मैं no_proxy नहीं जानता, लेकिन http_proxy (निचला भाग लिखा) मानक है
Uwe बर्गर

@UweBurger शायद आप बता सकते हैं कि कौन से प्रोग्राम इसका उपयोग करते हैं .. और यह प्रश्नकर्ता के लिए भी जाता है। मैंने देखा है कि इसे wget पर इस्तेमाल किया गया है
barlop

जवाबों:


18

मैं बिलथोर के कथन से सहमत हूं कि यह एक मानक से अधिक एक सम्मेलन है।
मुझे इन चरों की उत्पत्ति का पता नहीं है लेकिन HTTP पर * nix के मामले में कई कन्वेंशन libcurl HTTP लाइब्रेरी और कर्ल कमांड लाइन प्रोग्राम के व्यवहार से उत्पन्न होते हैं ।

Https://curl.haxx.se/docs/manual.html पर HTTP प्रॉक्सी का उपयोग करने से संबंधित पर्यावरण चर का वर्णन है जो libcurl / कर्ल समझता है:

पर्यावरण चर

कर्ल निम्नलिखित पर्यावरण चर को पढ़ता और समझता है:
http_proxy, HTTPS_PROXY, FTP_PROXY

उन्हें प्रोटोकॉल-विशिष्ट प्रॉक्सी के लिए सेट किया जाना चाहिए। सामान्य प्रॉक्सी के साथ सेट किया जाना चाहिए
ALL_PROXY

किसी भी प्रॉक्सी के माध्यम से नहीं जाने वाले होस्ट नामों की अल्पविराम से अलग सूची (केवल एक तारांकन में सेट है, '*' सभी होस्ट से मेल खाता है)
NO_PROXY

यदि होस्ट नाम इनमें से किसी एक स्ट्रिंग से मेल खाता है, या होस्ट इन स्ट्रिंग्स में से किसी एक के डोमेन के भीतर है, तो उस नोड के साथ लेन-देन अनुमानित नहीं होगा।

कृपया ध्यान दें कि http_proxyइन चरों में से केवल एक के रूप में लोअरकेस वर्तनी है। कुछ पुस्तकालय / कार्यक्रम इन चरों के निचले नामों की तलाश करते हैं, जबकि अन्य अपरकेस नामों की तलाश करते हैं। सुरक्षित होने के लिए प्रत्येक लोअरकेस और अपरकेस दोनों को प्रत्येक चर के रूप में परिभाषित करना चाहिए।

एक और मुद्दा यह है कि मेजबान के नामों का मिलान कैसे किया NO_PROXYजाता है, इसका सटीक वर्णन नहीं है और निम्नलिखित सवालों के जवाब नहीं देता है:

  • मानों को पूरी तरह से योग्य डोमेन नाम (FQDN) होना चाहिए और इस तरह डॉट के साथ समाप्त होना चाहिए foo.example.com.या नहीं?
  • क्या foo.example.comयह केवल एक डोमेन से मेल खाना चाहिए या इसे किसी उप-डोमेन की तरह मेल खाना चाहिए bar.foo.example.com? यदि बाद में तो इसे किसी भी उपडोमेन जैसे किसी भी उपडोमेन से मेल खाना चाहिए bar.baz.foo.example.com?
  • क्या .foo.example.com(शुरुआत में डॉट) की अनुमति है और यदि ऐसा है तो इसे क्या मेल खाना चाहिए?
  • तारांकित (है *) मूल्य के भाग के रूप अनुमति ( *.example.com, *example.com) और यदि ऐसा है तो फिर यह कैसे व्यवहार किया जाता है?

औपचारिक विनिर्देश की कमी से भ्रम और कीड़े होते हैं। यहाँ एक libproxy लाइब्रेरी का उल्लेख करना है जिसका उद्देश्य प्रॉक्सी कॉन्फ़िगरेशन के लिए सही और लगातार समर्थन प्रदान करना है। परियोजना के मुख पृष्ठ से :

libproxy प्रश्न का उत्तर देने के लिए मौजूद है: एक नेटवर्क संसाधन को देखते हुए, मैं इसे कैसे पहुंचाऊं? यह सभी विवरणों को संभालता है, जिससे आप प्रोग्रामिंग में वापस आ सकते हैं।

आगे की पढाई:


आपके द्वारा उठाए गए सवालों के बारे में लिबरप्रोक्स का क्या कहना है? जिस में मेरी दिलचस्पी है: "चाहिए .foo.example.com मैच foo.example.com या नहीं?"
रॉबिन विंसलो

मुझे पता नहीं है। मैं आपको github.com/libproxy/libproxy/issues
Piotr Dobrogost

13

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

सामान्य सम्मेलनों को समझना और उनका उपयोग करना विकास को बहुत सरल बनाता है। यह कम से कम आश्चर्य के सिद्धांत को लागू करने और कार्यक्रमों को अधिक संभावना बनाने में मदद करता है just work

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.