curl HTTP_PROXY ને કેમ અવગણે છે
curl નો ઇરાદાપૂર્વકનો HTTP_PROXY અપવાદ, પ્રોટોકોલ-વિશિષ્ટ ચલો, ALL_PROXY અને પર્યાવરણ આધારિત પ્રોક્સી પરીક્ષણને અનુમાનપાત્ર બનાવવાની રીત સમજો.
HTTP ગંતવ્યો માટે નાના અક્ષરોમાં http_proxy સેટ કરો. curl મોટા અક્ષરોના HTTP_PROXY ને ઇરાદાપૂર્વક અવગણે છે. 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 ને લાગુ કરો; એપ્લિકેશનનું પોતાનું રનટાઇમ પ્રોક્સીઓને બીજી રીતે શોધી અને ભેગા કરી શકે છે.