curl ஏன் HTTP_PROXY-ஐப் புறக்கணிக்கிறது
curl-இன் திட்டமிட்ட HTTP_PROXY விதிவிலக்கு, நெறிமுறை சார்ந்த மாறிகள், ALL_PROXY மற்றும் சூழல் மாறிகள் மூலம் கணிக்கக்கூடிய பதிலி சோதனையைப் புரிந்துகொள்ளுங்கள்.
HTTP இலக்குகளுக்குச் சிற்றெழுத்திலுள்ள http_proxy-ஐ அமைக்கவும். பேரெழுத்திலுள்ள HTTP_PROXY-ஐ curl வேண்டுமென்றே புறக்கணிக்கிறது. POSIX ஷெல்லில்:
http_proxy=http://127.0.0.1:8080 curl http://example.com/
https_proxy=http://127.0.0.1:8080 curl https://example.com/இந்த மதிப்பு ஒதுக்கீடுகள் உடனே அடுத்து வரும் கட்டளைக்கு மட்டுமே பொருந்தும். எடுத்துக்காட்டின் கேட்கும் முகவரியை உங்கள் பதிலியால் மாற்றவும்; பொது முனைப்புள்ளிகளை ஒப்பிட HTTP பதிலிப் பட்டியலிலிருந்து ஒன்றைத் தேர்ந்தெடுக்கவும். https_proxy மாறி HTTPS இலக்குகளுக்கான பாதையைத் தேர்ந்தெடுக்கிறது; http:// கொண்ட மதிப்பு இன்னமும் இலக்கிற்குச் சுரங்கம் அமைக்கக்கூடிய வழக்கமான HTTP பதிலியையே குறிக்கிறது. PowerShell மற்றும் Windows கட்டளை ஷெல்கள் வேறு ஒதுக்கீட்டு இலக்கணத்தைப் பயன்படுத்துகின்றன.
இந்தப் பேரெழுத்து வடிவம் மட்டும் ஏன் ஆபத்தானது
CGI சூழல்கள் உள்வரும் கோரிக்கைகளின் தலைப்புகளைப் பேரெழுத்து HTTP_ மாறிகளாக மாற்றலாம். எனவே Proxy என்ற தலைப்பு HTTP_PROXY ஆகலாம். அதை வெளியே செல்லும் இணைப்புகளுக்கான நம்பகமான அமைப்பாக ஏற்றுக்கொண்டால், கோரிக்கையின் தரவு பதிலியைத் தேர்ந்தெடுக்க முடியும். curl-இன் சிற்றெழுத்துத் தேவை இந்த இணைமாற்றத்தைத் தவிர்க்கிறது; HTTPS மற்றும் பிற நெறிமுறை மாறிகளுக்கு இந்த விதிவிலக்கு அப்படியே பொருந்தாது.
மாறியை மாற்றியும் பாதை மாறாவிட்டால்
முதலில் நெறிமுறை சார்ந்த மாறியைத் தேடவும்; பிறகு மாற்றுத் தேர்வான ALL_PROXY-ஐப் பார்க்கவும். பொருந்தும் NO_PROXY விதி பதிலியைத் தவிர்க்கலாம். சிற்றெழுத்து வடிவங்களும் போட்டியிடும் வரையறைகளும் முக்கியம். Unix போன்ற ஷெல்லுக்கான இந்தச் சுழற்சி இருப்பை மட்டும் தெரிவிக்கிறது; உள்நுழைவு விவரங்கள் இருக்கக்கூடிய மதிப்புகளை அச்சிடாது:
for name in http_proxy HTTP_PROXY https_proxy HTTPS_PROXY all_proxy ALL_PROXY no_proxy NO_PROXY; do
if printenv "$name" >/dev/null; then
printf '%s is set\n' "$name"
fi
doneபட்டியலிடப்பட்ட வரையறைகளை உள்ளூரில் ஆராயவும். ஏதேனும் மீண்டும் தோன்றினால், தொடங்கும் ஷெல், சேவை, IDE, கொள்கலன் அல்லது CI அமைப்பைப் பார்க்கவும். இருப்பது சாத்தியமான உள்ளீடுகளை அடையாளம் காட்டும்; எந்த மதிப்பிற்கு முன்னுரிமை கிடைத்தது என்பதைக் கூறாது.
ஒரு கோரிக்கையை இந்தப் பதிலித் தேர்வுகளிலிருந்து தனிமைப்படுத்த முனைப்புள்ளியையும் காலியான தவிர்ப்புப் பட்டியலையும் கொடுக்கவும்:
curl --proxy http://127.0.0.1:8080 --noproxy '' --connect-timeout 5 --max-time 15 --verbose https://example.com/நேரடி இணைப்பு அனுமதிக்கப்படும்போது ஒப்பிட:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/இந்தக் கட்டளைகள் மரபாகப் பெற்ற பாதையையும் இணைப்புத் தோல்வியையும் பிரித்தறிய உதவும். சூழலின் கூடுதல் அமைப்புகளை மாற்றுவதற்கு முன் பதிலிச் சோதனையின் முடிவுகளைப் படிப்படியாகப் படிக்கவும். curl-இன் மாறி விதிகளை curl-க்குப் பயன்படுத்தவும்; பயன்பாட்டின் சொந்த இயக்கச் சூழல் பதிலிகளை வேறு விதமாகக் கண்டறிந்து ஒன்றிணைக்கலாம்.