ฉันได้พบทั้งสองและhttp_proxy
HTTP_PROXY
ทั้งสองรูปแบบเทียบเท่ากันไหม หนึ่งในนั้นมีความสำคัญมากกว่าคนอื่น ๆ ?
ฉันได้พบทั้งสองและhttp_proxy
HTTP_PROXY
ทั้งสองรูปแบบเทียบเท่ากันไหม หนึ่งในนั้นมีความสำคัญมากกว่าคนอื่น ๆ ?
คำตอบ:
ไม่มีหน่วยงานกลางที่กำหนดความหมายอย่างเป็นทางการให้กับตัวแปรสภาพแวดล้อมก่อนที่แอปพลิเคชันจะสามารถใช้งานได้ 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 (ขอบคุณStéphane Chazelas สำหรับการค้นหานี้) ฉันไม่รู้ว่าอะไรเป็นแรงบันดาลใจในการเลือกตัวพิมพ์เล็กซึ่งจะเป็นสิ่งที่ผิดปกติ
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
คอมไพล์
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
จะเป็นข้อผิดพลาดเพราะมันจะไม่เข้ากันกับส่วนที่เหลือของโลก
WGET - ใช้การตั้งค่าพร็อกซีตัวพิมพ์เล็กเท่านั้น!
ทั้งhttp_proxy
และHTTP_PROXY
ควรทำงานบนระบบ RHEL และอูบุนตู
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-CE เท่านั้นเกียรตินิยม no_proxy