본인은 이것이 표준보다 관습 이라는 BillThor의 진술에 동의합니다 .
나는 이러한 변수의 기원을 모르지만 * nix의 HTTP의 경우 많은 규칙이 libcurl HTTP 라이브러리 및 curl 명령 행 프로그램의 동작에서 비롯된 것 같습니다 .
에서 https://curl.haxx.se/docs/manual.html libcurl에서 / 컬 이해 HTTP 프록시 사용과 관련된 환경 변수의 설명이있다 :
환경 변수
컬은 다음 환경 변수를 읽고 이해합니다.
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는 질문에 대답하기 위해 존재합니다. 네트워크 리소스가 주어지면 어떻게 접근 할 수 있습니까? 모든 세부 사항을 처리하여 프로그래밍으로 돌아갈 수 있습니다.
더 읽을 거리 :