Parece que muitos programas foram projetados para ler essas variáveis de ambiente e decidir por qual proxy passar para conectar-se a um recurso na Internet. Esses programas também podem ter suas próprias configurações de proxy individuais, mas se elas não estiverem definidas, elas usarão com prazer essas variáveis de ambiente ...
- PROXY HTTP
- HTTPS_PROXY
- NO_PROXY
Eu só quero saber:
- Essas variáveis de ambiente são padrão?
- Existe uma especificação por escrito (pode ser feita pelos fabricantes do SO?) Que recomenda o uso dessas variáveis de ambiente?
environment-variables
http
http-proxy
Niko Bellic
fonte
fonte
Respostas:
Concordo com a afirmação de BillThor de que isso é mais uma convenção do que um padrão.
Eu não sei a origem dessas variáveis, mas no caso do HTTP no * nix, muitas convenções parecem se originar do comportamento da biblioteca HTTP libcurl e do programa de linha de comando curl.
Em https://curl.haxx.se/docs/manual.html, há uma descrição das variáveis de ambiente relacionadas ao uso do proxy HTTP que a libcurl / curl entende:
Observe que
http_proxy
está escrito em minúsculas como o único dentre essas variáveis. Algumas bibliotecas / programas procuram nomes em minúsculas dessas variáveis, enquanto outros procuram nomes em maiúsculas. Para estar seguro, deve-se definir as versões em minúsculas e maiúsculas de cada variável.Outra questão é que a descrição citada de como os nomes de host são comparados
NO_PROXY
não é precisa e não responde às seguintes perguntas:foo.example.com.
ou não?foo.example.com
corresponder apenas a este domínio ou também deve corresponder a qualquer subdomíniobar.foo.example.com
? Se este último também deve corresponder a qualquer subdomínio em qualquer subdomínio comobar.baz.foo.example.com
?.foo.example.com
permitido (ponto no início) e, em caso afirmativo, qual deve corresponder?*
) é permitido como parte do valor (*.example.com
,*example.com
) e, em caso afirmativo, como é tratado?A falta de especificação formal leva a confusão e bugs. Aqui é preciso mencionar a biblioteca libproxy , que visa fornecer suporte correto e consistente para a configuração do proxy. Na página inicial do projeto :
Leitura adicional:
fonte
Isso é mais uma convenção do que um padrão. Provavelmente, ele é suportado por uma ou mais bibliotecas de manipuladores de protocolo que efetivamente fazem as conexões. Java usa propriedades semelhantes em suas bibliotecas de protocolo.
Compreender e usar convenções comuns torna o desenvolvimento muito mais simples. Também ajuda a implementar o princípio da menor surpresa e aumenta a probabilidade de os programas
just work
.fonte