Anscheinend sind viele Programme darauf ausgelegt, diese Umgebungsvariablen zu lesen, um zu entscheiden, welcher Proxy durchlaufen werden soll, um eine Verbindung zu einer Ressource im Internet herzustellen. Diese Programme können auch ihre eigenen, individuellen Proxy-Einstellungen haben, aber wenn diese nicht festgelegt sind, werden sie diese Umgebungsvariablen gerne verwenden ...
- HTTP-PROXY
- HTTPS_PROXY
- KEIN VERTRETER
Ich will nur wissen:
- Sind diese Umgebungsvariablen Standard?
- Gibt es eine schriftliche Spezifikation (möglicherweise von den Betriebssystemherstellern?), Die die Verwendung dieser Umgebungsvariablen empfiehlt?
environment-variables
http
http-proxy
Niko Bellic
quelle
quelle
Antworten:
Ich stimme der Aussage von BillThor zu, dass dies eher eine Konvention als ein Standard ist.
Ich kenne den Ursprung dieser Variablen nicht, aber im Falle von HTTP unter * nix scheinen viele Konventionen vom Verhalten der libcurl- HTTP-Bibliothek und des curl-Befehlszeilenprogramms zu herrühren .
Unter https://curl.haxx.se/docs/manual.html finden Sie eine Beschreibung der Umgebungsvariablen für die Verwendung von HTTP-Proxy, die von libcurl / curl verstanden werden:
Bitte beachten Sie, dass
http_proxy
als einzige dieser Variablen Kleinbuchstaben verwendet werden. Einige Bibliotheken / Programme suchen nach Kleinbuchstaben dieser Variablen, während andere nach Großbuchstaben suchen. Zur Sicherheit sollte man für jede Variable sowohl Klein- als auch Großbuchstaben definieren.Ein weiteres Problem ist, dass die zitierte Beschreibung, wie Hostnamen abgeglichen werden,
NO_PROXY
nicht genau ist und die folgenden Fragen nicht beantwortet:foo.example.com.
oder nicht?foo.example.com
nur diese eine Domain passen oder sollte es auch zu irgendeiner Subdomain passen wiebar.foo.example.com
? Wenn letzteres dann sollte es auch mit irgendeiner Subdomain in irgendeiner Subdomain wie übereinstimmenbar.baz.foo.example.com
?.foo.example.com
(Punkt am Anfang) erlaubt und wenn ja, was soll es passen?*
) als Teil von value (*.example.com
, ) erlaubt*example.com
und wenn ja, wie wird es behandelt?Mangelnde formale Spezifikation führt zu Verwirrung und Fehlern. Hier ist die libproxy- Bibliothek zu nennen, die die Proxy-Konfiguration korrekt und konsistent unterstützen soll. Von der Homepage des Projekts :
Weitere Lektüre:
quelle
Dies ist eher eine Konvention als ein Standard. Es wird wahrscheinlich von einer oder mehreren Protokoll-Handler-Bibliotheken unterstützt, die tatsächlich die Verbindungen herstellen. Java verwendet ähnliche Eigenschaften in seinen Protokollbibliotheken.
Das Verstehen und Verwenden gemeinsamer Konventionen vereinfacht die Entwicklung erheblich. Es hilft auch, das Prinzip der geringsten Überraschung umzusetzen und die Wahrscheinlichkeit von Programmen zu erhöhen
just work
.quelle