Go의 표준 DefaultTransport는 Proxy를 ProxyFromEnvironment로 설정합니다. 별도로 생성한 &http.Transport{}의 Proxy 함수는 nil이므로 어떤 프록시도 선택하지 않습니다.

이 차이는 시간 제한만 바꾸려고 전송을 추가한 뒤에 나타날 수 있습니다. 표준 기본값이 여전히 설치되어 있다면 복제한 뒤 필요한 필드를 변경하세요.

transport := http.DefaultTransport.(*http.Transport).Clone()
transport.ResponseHeaderTimeout = 15 * time.Second

client := &http.Client{
    Transport: transport,
    Timeout: 30 * time.Second,
}

복제본은 환경 프록시 선택과 다른 기본 전송 설정을 유지합니다. 형식 단언은 애플리케이션이 DefaultTransport를 다른 RoundTripper로 교체하지 않았다고 가정합니다.

의도적으로 처음부터 만든 전송이라면 그것이 라우팅 정책일 때 Proxy: http.ProxyFromEnvironment을 명시적으로 설정하세요. 명시적인 ProxyURL 함수는 다른 정책을 나타냅니다: 선택된 하나의 중개자.

동시 요청이 사용하기 전에 전송을 구성하고, 그런 다음 작업 부하에 재사용하세요. 공유 기본 객체를 변경하면 관련 없는 클라이언트에 영향을 줄 수 있습니다.

사용자 지정 TLS 설정은 별개입니다. 프록시 검색을 유지하는 데 인증서 검증을 비활성화할 필요는 없으며, 그렇게 하면 일치하는 모든 HTTPS 요청의 보안이 바뀝니다.

관련 글