Jawaban:
Tidak ada otoritas pusat yang memberikan makna resmi ke variabel lingkungan sebelum aplikasi dapat menggunakannya. POSIX mendefinisikan arti dari beberapa variabel ( PATH
,, TERM
...) dan mendaftar beberapa lagi dengan cara non-normatif sebagai yang umum digunakan, semuanya dalam huruf besar. http_proxy
dan teman bukan salah satu dari mereka.
Tidak seperti pada dasarnya semua variabel lingkungan konvensional yang digunakan oleh banyak aplikasi, http_proxy
, https_proxy
, ftp_proxy
dan no_proxy
biasanya huruf kecil. Saya tidak ingat program apa pun yang hanya memahaminya dalam huruf besar, saya bahkan tidak dapat menemukan yang mencobanya dalam huruf besar. Banyak program menggunakan varian huruf kecil saja, termasuk lynx, wget, curl, perl LWP, perl WWW :: Search, python urllib / urllib2, dll. Jadi untuk variabel-variabel ini, bentuk yang tepat adalah huruf kecil.
Nama huruf kecil paling tidak berasal dari CERN libwww 2.15 pada Maret 1994 (terima kasih kepada Stéphane Chazelas karena menemukan ini). Saya tidak tahu apa yang memotivasi pilihan huruf kecil, yang akan menjadi tidak biasa saat itu.
HTTPS_PROXY
. buruh pelabuhan juga menggunakan varian huruf besar.
sudo -E apt-add-repository ppa:xxxxx/xxxx
. saya harus unset https_proxy
danexport HTTPS_PROXY=http://a.b.c.d:xxxx
Tidak ada standar dan versi huruf besar dan kecil digunakan tergantung pada aplikasi (juga lihat HTTPS_PROXY, ALL_PROXY, NO_PROXY).
Sebagai contoh:
ikal
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)). [..]
Python
urllib.request.getproxies()
mendukung varian huruf kecil dan besar.
Itu juga menyebutkan masalah keamanan:
Jika variabel lingkungan REQUEST_METHOD diatur, yang biasanya menunjukkan skrip Anda berjalan di lingkungan CGI, variabel lingkungan HTTP_PROXY (huruf besar _PROXY) akan diabaikan. Ini karena variabel itu dapat disuntikkan oleh klien menggunakan header HTTP "Proxy:". Jika Anda perlu menggunakan proxy HTTP di lingkungan CGI, gunakan ProxyHandler secara eksplisit, atau pastikan nama variabel dalam huruf kecil (atau setidaknya akhiran _proxy).
Beberapa aplikasi memungkinkan NO_PROXY
untuk mengandung bintang / rentang ip sementara yang lain tidak.
Begitu
export https_proxy=$http_proxy HTTP_PROXY=$http_proxy HTTPS_PROXY=$http_proxy NO_PROXY=$no_proxy
Anda harus meliput.
Konvensi ini adalah untuk menggunakan semua variabel lingkungan capps saat mengekspornya, sehingga saat Anda menulis skrip shell Anda dapat menggunakan nama variabel huruf kecil tanpa khawatir tentang tabrakan nama dengan program lain. Tentu saja ini hanya konvensi, tidak ada batasan teknis untuk membatasi nama variabel lingkungan sehingga versi huruf kecil dapat digunakan dalam beberapa kasus, tetapi praktik terbaik adalah huruf besar, dan ingat bahwa mereka peka terhadap huruf besar-kecil sehingga mereka dapat memiliki perbedaan nilai-nilai.
http_proxy
dan saudara kandungnya biasanya huruf kecil.
http_proxy
dan teman harus dieja dalam huruf kecil, yang melanggar konvensi. Aplikasi yang HTTP_PROXY
akan digunakan adalah bug karena tidak kompatibel dengan bagian dunia lainnya.
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
-> Sebagai catatan, saya baru tahu bahwa buruh pelabuhan 17,04.0-ce hanya menghormati NO_PROXY.