Відповіді:
Немає центрального органу, який би присвоював змінні середовища середовище офіційне значення, перш ніж програми можуть використовувати їх. POSIX визначає значення деяких змінних ( PATH
, TERM
, ...) і списки трохи більше в ненормативному, як бути в загальному користуванні, всі вони в верхньому регістрі. http_proxy
і друзі - не один із них.
В відміну від звичайних в основному всіх змінних оточень , що використовуються багатьма додатками, http_proxy
, https_proxy
, ftp_proxy
і , no_proxy
як правило , в нижньому регістрі. Я не пригадую жодної програми, яка розуміє їх лише у великих літерах, я навіть не можу знайти жодної програми, яка б спробувала їх у великих літерах. У багатьох програмах використовується лише рядковий варіант, включаючи lynx, wget, curl, perl LWP, perl WWW :: Search, python urllib / urllib2 і т. Д. Отже, для цих змінних правильна форма - це малий регістр.
Нижнє ім'я походить щонайменше з CERN libwww 2.15 у березні 1994 року (завдяки Стефану Шазеласу за те, що він знайшов це). Я не знаю, що мотивувало вибір нижнього регістру, який був би незвичним навіть тоді.
HTTPS_PROXY
. Докер також використовує верхній регістр.
sudo -E apt-add-repository ppa:xxxxx/xxxx
. я повинен був unset https_proxy
іexport HTTPS_PROXY=http://a.b.c.d:xxxx
Немає стандартних і великі та малі версії використовуються залежно від програми (також див. HTTPS_PROXY, ALL_PROXY, NO_PROXY).
Наприклад:
завиток
ENVIRONMENT VARIABLES
Curl reads and understands the following environment variables:
http_proxy, HTTPS_PROXY, FTP_PROXY
They should be set for protocol-specific proxies. General proxy should be
set with
ALL_PROXY
A comma-separated list of host names that shouldn't go through any proxy is
set in (only an asterisk, '*' matches all hosts)
NO_PROXY
git
http.proxy
Override the HTTP proxy, normally configured using the http_proxy, https_proxy,
and all_proxy environment variables (see curl(1)). [..]
Пітон
urllib.request.getproxies()
підтримує як малі, так і великі варіанти.
Він також згадує про питання безпеки:
Якщо встановлена змінна середовище REQUEST_METHOD, яка зазвичай вказує на те, що ваш сценарій працює у середовищі CGI, змінна середовища HTTP_PROXY (верхній регістр _PROXY) буде ігноруватися. Це тому, що цю змінну клієнт може вводити за допомогою заголовка HTTP «Проксі:». Якщо вам потрібно використовувати проксі-сервер HTTP у середовищі CGI, або використовуйте ProxyHandler явно, або переконайтесь, що ім'я змінної в нижньому регістрі (або принаймні суфікс _proxy).
Деякі програми дозволяють NO_PROXY
містити зірки / ip-діапазони, а інші -.
Так
export https_proxy=$http_proxy HTTP_PROXY=$http_proxy HTTPS_PROXY=$http_proxy NO_PROXY=$no_proxy
повинен був би вас прикрити.
Конвенція полягає в тому, щоб використовувати всі змінні середовища capps при їх експортуванні, так що під час написання скриптів оболонки ви можете використовувати імена змінних малих літер, не турбуючись про зіткнення імен з іншими програмами. Звичайно, це лише умова, не існує технічних обмежень щодо обмеження назв змінних оточуючого середовища, тому малу версію можна використовувати в деяких випадках, але найкраща практика - це великі регістри, і пам’ятайте, що вони відрізняються від регістру, щоб вони могли мати різні значення.
http_proxy
і її братів і сестер зазвичай бувають малі.
http_proxy
та друзів повинен бути написаний з малих літер, порушуючи конвенцію. Використання додатка HTTP_PROXY
було б помилкою, оскільки воно було б несумісне з рештою світу.
Unlike basically all conventional environment variables used by many applications, http_proxy, https_proxy, ftp_proxy and no_proxy are commonly lowercase. I don't recall any program that only understands them in uppercase
-> Для запису, я тільки що дізнався , що Докер 17.04.0-с тільки відміну no_proxy.