これは標準というよりも慣習であるというBillThorの声明に同意します。
これらの変数の起源はわかりませんが、* nixでのHTTPの場合、多くの規則はlibcurl HTTPライブラリとcurlコマンドラインプログラムの動作に由来するようです。
でhttps://curl.haxx.se/docs/manual.html libcurlの/カールが理解するHTTPプロキシの使用に関連する環境変数の説明があります:
環境変数
Curlは次の環境変数を読み取り、理解します。
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は、次の質問に答えるために存在します。ネットワークリソースが与えられた場合、どのように到達できますか?すべての詳細を処理し、プログラミングに戻ることができます。
参考文献: