http_proxy
나는 두 가지 상황을 모두 겪었습니다 HTTP_PROXY
. 두 형식이 동일합니까? 하나가 다른 것보다 우선합니까?
답변1
애플리케이션에서 환경 변수를 사용하기 전에 공식적인 의미를 할당하는 중앙 기관이 없습니다.POSIXPATH
일부 변수( , , ...)의 의미가 정의되어 있으며 TERM
, 기타 일반적으로 사용되는 여러 변수는 비표준 방식으로 모두 대문자로 나열됩니다. http_proxy
그리고 친구는 그들 중 하나가 아닙니다.
기본적으로 많은 애플리케이션에서 사용되는 모든 일반 환경 변수와 달리 http_proxy
, https_proxy
및 는 일반적으로 소문자입니다. 대문자만 인식하는 프로그램은 기억나지 않고, 대문자만 인식하는 프로그램도 본 적이 없습니다. 많은 프로그램은 lynx, wget, 컬, perl LWP, perl WWW::Search, python urllib/urllib2 등을 포함하여 소문자 변수만 사용합니다. 따라서 이러한 변수의 경우 올바른 형식은 소문자입니다.ftp_proxy
no_proxy
소문자 이름은 적어도CERN libwww 2.151994년 3월(이것을 찾아주신 Stéphane Chazelas에게 감사드립니다). 당시에도 이례적이었던 소문자를 선택하게 된 계기가 무엇인지 모르겠습니다.
답변2
표준은 없으며 애플리케이션에 따라 대문자 및 소문자 버전이 사용됩니다(HTTPS_PROXY, ALL_PROXY, NO_PROXY 참조).
예를 들어:
곱슬
ENVIRONMENT VARIABLES
Curl reads and understands the following environment variables:
http_proxy, HTTPS_PROXY, FTP_PROXY
They should be set for protocol-specific proxies. General proxy should be
set with
ALL_PROXY
A comma-separated list of host names that shouldn't go through any proxy is
set in (only an asterisk, '*' matches all hosts)
NO_PROXY
자식
http.proxy
Override the HTTP proxy, normally configured using the http_proxy, https_proxy,
and all_proxy environment variables (see curl(1)). [..]
파이썬
urllib.request.getproxies()
소문자 및 대문자 변형이 지원됩니다.
또한 보안 문제도 언급합니다.
환경 변수 REQUEST_METHOD가 설정된 경우(일반적으로 스크립트가 CGI 환경에서 실행되고 있음을 나타냄) 환경 변수 HTTP_PROXY(대문자 _PROXY)는 무시됩니다. 이는 클라이언트가 "Proxy:" HTTP 헤더를 사용하여 이 변수를 주입할 수 있기 때문입니다. CGI 환경에서 HTTP 프록시를 사용해야 하는 경우 ProxyHandler를 명시적으로 사용하거나 변수 이름이 소문자인지(또는 최소한 _proxy 접미사가 있는지) 확인하세요.
일부 애플리케이션에서는 NO_PROXY
별표/IP 범위를 포함할 수 있지만 다른 애플리케이션에서는 그렇지 않습니다.
그래서
export https_proxy=$http_proxy HTTP_PROXY=$http_proxy HTTPS_PROXY=$http_proxy NO_PROXY=$no_proxy
귀하의 요구 사항을 충족해야 합니다.
답변3
대부분의 응용 프로그램은 대문자 변수를 지원하는 반면 다른 응용 프로그램은 소문자 변수를 지원하는 것 같습니다. curl
CGI-BIN 또는 PHP 유형 환경에서 HTTP 헤더를 통해 설정할 수 있기 때문에 HTTP_PROXY에 대한 지원을 제거함으로써 혼란이 발생한다고 생각합니다 . Proxy:
컬의 소스 코드:
https://github.com/curl/curl/blob/30e7641d7d2eb46c0b67c0c495a0ea7e52333ee2/lib/url.c#L2250-L2266
GitLab 블로그 게시물은 광기를 설명합니다.
https://about.gitlab.com/blog/2021/01/27/we-need-to-talk-no-proxy/
답변4
WGET- 소문자 프록시 설정만 사용하세요!