Parece que muchos programas están diseñados para leer estas variables de entorno para decidir qué proxy utilizar para conectarse a un recurso en Internet. Esos programas también pueden tener su propia configuración de proxy individual, pero si no están configurados, usarán con gusto estas variables de entorno ...
- HTTP_PROXY
- HTTPS_PROXY
- NO_PROXY
Sólo quiero saber:
- ¿Son estándar estas variables de entorno?
- ¿Existe una especificación escrita (puede ser por los fabricantes del sistema operativo?) Que recomienda el uso de estas variables de entorno?
environment-variables
http
http-proxy
Niko Bellic
fuente
fuente
Respuestas:
Esto es más una convención que un estándar. Es probable que sea compatible con una o más bibliotecas de controladores de protocolo que realmente hacen las conexiones. Java usa propiedades similares en sus bibliotecas de protocolos.
Comprender y usar convenciones comunes hace que el desarrollo sea mucho más simple. También ayuda a implementar el principio de menor sorpresa y hace que los programas sean más propensos a hacerlo
just work
.fuente
Estoy de acuerdo con la declaración de BillThor de que esto es más una convención que un estándar.
No sé el origen de estas variables, pero en el caso de HTTP en * nix, muchas convenciones parecen originarse en el comportamiento de la biblioteca libcurl HTTP y el programa curl de línea de comandos.
En https://curl.haxx.se/docs/manual.html hay una descripción de las variables de entorno relacionadas con el uso del proxy HTTP que entiende libcurl / curl:
Tenga en cuenta que
http_proxy
se escribe en minúsculas como la única entre estas variables. Algunas bibliotecas / programas buscan nombres en minúsculas de estas variables, mientras que otros buscan nombres en mayúsculas. Para estar seguro, uno debe definir las versiones en minúsculas y mayúsculas de cada variable.Otro problema es que la descripción citada de cómo se comparan los nombres de host
NO_PROXY
no es precisa y no responde las siguientes preguntas:foo.example.com.
o no?foo.example.com
coincidir solo con este dominio o también debería coincidir con cualquier subdominio comobar.foo.example.com
? Si este último, ¿también debería coincidir con algún subdominio en algún subdominio comobar.baz.foo.example.com
?.foo.example.com
permitido (punto al principio) y, de ser así, ¿qué debería coincidir?*
permite el asterisco ( ) como parte del valor (*.example.com
,*example.com
) y, de ser así, ¿cómo se trata?La falta de especificación formal conduce a confusión y errores. Aquí hay que mencionar la biblioteca libproxy que tiene como objetivo proporcionar soporte correcto y consistente para la configuración del proxy. Desde la página de inicio del proyecto :
Otras lecturas:
fuente