ब्यौरा
Chrome की प्रॉक्सी सेटिंग मैनेज करने के लिए, chrome.proxy एपीआई का इस्तेमाल करें. यह एपीआई, प्रॉक्सी कॉन्फ़िगरेशन पाने और सेट करने के लिए, एपीआई टाइप के ChromeSettings प्रोटोटाइप का इस्तेमाल करता है.
अनुमतियां
proxyआपको "प्रॉक्सी" का एलान करना होगा एक्सटेंशन मेनिफ़ेस्ट में प्रॉक्सी सेटिंग का इस्तेमाल करने की अनुमति एपीआई. उदाहरण के लिए:
{
"name": "My extension",
...
"permissions": [
"proxy"
],
...
}
सिद्धांत और उनका इस्तेमाल
प्रॉक्सी सेटिंग, proxy.ProxyConfig ऑब्जेक्ट में तय की जाती हैं. Chrome की प्रॉक्सी सेटिंग के हिसाब से,
सेटिंग में proxy.ProxyRules या proxy.PacScript हो सकता है.
प्रॉक्सी मोड
प्रॉक्सी कॉन्फ़िगरेशन ऑब्जेक्ट का mode एट्रिब्यूट,
प्रॉक्सी का इस्तेमाल. इसमें नीचे दी गई वैल्यू हो सकती हैं:
directdirectमोड में, सभी कनेक्शन सीधे तौर पर बनाए जाते हैं. इनमें कोई प्रॉक्सी शामिल नहीं होता. इस मोड में, आपकोProxyConfigऑब्जेक्ट में कोई और पैरामीटर नहीं है.auto_detectauto_detectमोड में, प्रॉक्सी कॉन्फ़िगरेशन को एक पीएसी स्क्रिप्ट से तय किया जाता है, जिसे डाउनलोड किया जा सकता है http://wpad/wpad.dat पर जाएं. यह मोड,ProxyConfigऑब्जेक्ट में किसी और पैरामीटर की अनुमति नहीं देता है.pac_scriptpac_scriptमोड में, प्रॉक्सी कॉन्फ़िगरेशन को उस पीएसी स्क्रिप्ट से तय किया जाता है जिसे या तो वापस लाया गया हैproxy.PacScriptऑब्जेक्ट में बताए गए यूआरएल से याdataएलिमेंट से लिया गया यूआरएलproxy.PacScriptऑब्जेक्ट में बताया गया है. इसके अलावा, यह मोड किसी और पैरामीटर की अनुमति नहीं देताProxyConfigऑब्जेक्ट में.fixed_serversfixed_serversमोड में, प्रॉक्सी कॉन्फ़िगरेशन कोproxy.ProxyRulesऑब्जेक्ट में कोड किया जाता है. यह स्ट्रक्चर के बारे में प्रॉक्सी नियमों में बताया गया है. इसके अलावा,fixed_serversमोड में आपकोProxyConfigऑब्जेक्ट में पैरामीटर.systemsystemमोड में, प्रॉक्सी कॉन्फ़िगरेशन, ऑपरेटिंग सिस्टम से लिया जाता है. इस मोड में, आपकोProxyConfigऑब्जेक्ट में दूसरे पैरामीटर भी जोड़े जा सकते हैं. ध्यान दें किsystemमोड कोई प्रॉक्सी कॉन्फ़िगरेशन सेट न करें. बाद वाले मामले में, Chrome सिर्फ़ तब सिस्टम सेटिंग पर वापस जाता है, जब कोई भी कमांड-लाइन विकल्प, प्रॉक्सी कॉन्फ़िगरेशन पर असर नहीं डालता.
प्रॉक्सी नियम
proxy.ProxyRules ऑब्जेक्ट में singleProxy एट्रिब्यूट या इसका सबसेट हो सकता है
proxyForHttp, proxyForHttps, proxyForFtp, और fallbackProxy.
पहले मामले में, एचटीटीपी, एचटीटीपीएस, और एफ़टीपी ट्रैफ़िक, बताए गए प्रॉक्सी सर्वर से प्रॉक्सी किया जाता है. किसी और तरीके से
को ट्रैफ़िक सीधे भेजा जाता है. बाद वाले मामले में व्यवहार कुछ सामान्य होता है: अगर कोई प्रॉक्सी सर्वर
को एचटीटीपी, एचटीटीपीएस या एफ़टीपी प्रोटोकॉल के लिए कॉन्फ़िगर किया जाता है और उससे जुड़े ट्रैफ़िक को
बताया गया सर्वर. अगर ऐसा कोई प्रॉक्सी सर्वर तय नहीं किया गया है या ट्रैफ़िक इससे किसी दूसरे प्रोटोकॉल का इस्तेमाल करता है
एचटीटीपी, एचटीटीपीएस या एफ़टीपी, fallbackProxy का इस्तेमाल किया जाता है. अगर कोई fallbackProxy तय नहीं की गई है, तो ट्रैफ़िक भेजा जाएगा
बिना किसी प्रॉक्सी सर्वर के.
प्रॉक्सी सर्वर ऑब्जेक्ट
प्रॉक्सी सर्वर को proxy.ProxyServer ऑब्जेक्ट में कॉन्फ़िगर किया गया है. प्रॉक्सी सर्वर से कनेक्शन
(host एट्रिब्यूट से तय किया गया) scheme एट्रिब्यूट में बताए गए प्रोटोकॉल का इस्तेमाल करता है. अगर नहीं
scheme तय किया गया है, प्रॉक्सी कनेक्शन डिफ़ॉल्ट रूप से http है.
अगर proxy.ProxyServer ऑब्जेक्ट में कोई port तय नहीं किया गया है, तो पोर्ट को स्कीम से लिया जाता है.
ये डिफ़ॉल्ट पोर्ट होते हैं:
| स्कीम | पोर्ट |
|---|---|
| http | 80 |
| https | 443 |
| socks4 | 1080 |
| socks5 | 1080 |
बायपास लिस्ट
अलग-अलग सर्वर को bypassList के साथ प्रॉक्सी से बाहर रखा जा सकता है. इस सूची में ये चीज़ें हो सकती हैं
निम्नलिखित प्रविष्टियाँ:
[SCHEME://]HOST_PATTERN[:PORT]HOST_PATTERNपैटर्न से मैच करने वाले सभी होस्टनेम को मैच करें. लीडिंग"."को"*.".उदाहरण:
"foobar.com", "*foobar.com", "*.foobar.com", "*foobar.com:99", "https://x.*.y.com:99".पैटर्न मैच करती स्ट्रिंग मिलान नहीं होता है ".foobar.com""www.foobar.com""foobar.com""*.foobar.com""www.foobar.com""foobar.com""foobar.com""foobar.com""www.foobar.com""*foobar.com""foobar.com","www.foobar.com","foofoobar.com"[SCHEME://]IP_LITERAL[:PORT]वे यूआरएल मैच करें जो आईपी पते की लिटरल वैल्यू हैं. सैद्धांतिक तौर पर यह पहले मामले की तरह ही है, लेकिन का इस्तेमाल खास मामलों में किया जाता है. उदाहरण के लिए, "[0:0:0::1]" से मैचिंग "[::1]" पर मिलान करने के समान है क्योंकि आईपीवी6 के कैननिकल होने की प्रक्रिया अंदरूनी तौर पर की जाती है.
उदाहरण:
127.0.1,[0:0::1],[::1]:80,https://[::1]:443IP_LITERAL/PREFIX_LENGTH_IN_BITSऐसे किसी भी यूआरएल का मिलान करें जिसमें दिए गए आईपी लिटरल (
IP_LITERAL) में आईपी हो रेंज. IP श्रेणी (PREFIX_LENGTH_IN_BITS) को सीआईडीआर (सीआईडीआर) का इस्तेमाल करके तय किया गया है नोटेशन.दी गई रेंज में मौजूद ऐसे किसी भी यूआरएल का मिलान करें जिसमें आईपी लिटरल हो. आईपी रेंज, सीआईडीआर का इस्तेमाल करके तय की गई है नोटेशन. उदाहरण:
"192.168.1.1/16", "fefe:13::abc/33"<local>लिटरल स्ट्रिंग
<local>, सामान्य होस्टनेम से मैच करती है. सामान्य होस्टनेम वह होता है जिसमें कोई डॉट हैं और यह एक IP लिटरल नहीं है. उदाहरण के लिए,exampleऔरlocalhostसामान्य होस्टनेम हैं, जबकिexample.com,example., और[::1]नहीं हैं.उदाहरण:
"<local>"
उदाहरण
नीचे दिया गया कोड, foobar.com को छोड़कर सभी सर्वर पर एचटीटीपी कनेक्शन के लिए SOCKS 5 प्रॉक्सी सेट करता है और डायरेक्ट कनेक्शन. सेटिंग नियमित और गुप्त विंडो पर इस तरह लागू होती हैं गुप्त विंडो, नियमित विंडो से सेटिंग इनहेरिट करती हैं. Types API भी देखें दस्तावेज़.
var config = {
mode: "fixed_servers",
rules: {
proxyForHttp: {
scheme: "socks5",
host: "1.2.3.4"
},
bypassList: ["foobar.com"]
}
};
chrome.proxy.settings.set(
{value: config, scope: 'regular'},
function() {}
);
नीचे दिया गया कोड, कस्टम पीएसी स्क्रिप्ट सेट करता है.
var config = {
mode: "pac_script",
pacScript: {
data: "function FindProxyForURL(url, host) {\n" +
" if (host == 'foobar.com')\n" +
" return 'PROXY blackhole:80';\n" +
" return 'DIRECT';\n" +
"}"
}
};
chrome.proxy.settings.set(
{value: config, scope: 'regular'},
function() {}
);
अगला स्निपेट, मौजूदा असरदार प्रॉक्सी सेटिंग के बारे में क्वेरी करता है. प्रभावी प्रॉक्सी सेटिंग ये हो सकती हैं या किसी नीति के ज़रिए तय किया जाता है. ज़्यादा जानकारी के लिए, Types API दस्तावेज़ देखें.
chrome.proxy.settings.get(
{'incognito': false},
function(config) {
console.log(JSON.stringify(config));
}
);
ध्यान दें कि set() को पास किया गया value ऑब्जेक्ट, यहां दिए गए value ऑब्जेक्ट के समान नहीं है
get() का कॉलबैक फ़ंक्शन. बाद वाले एलिमेंट में rules.proxyForHttp.port एलिमेंट शामिल होगा.
टाइप
Mode
Enum
"डायरेक्ट"
"auto_detect"
"pac_script"
"Fixed_servers"
"सिस्टम"
PacScript
किसी ऑब्जेक्ट में प्रॉक्सी ऑटो-कॉन्फ़िगरेशन की जानकारी होती है. कोई एक फ़ील्ड खाली नहीं होना चाहिए.
प्रॉपर्टी
-
डेटा
स्ट्रिंग ज़रूरी नहीं
पीएसी स्क्रिप्ट.
-
ज़रूरी है
बूलियन ज़रूरी नहीं
अगर सही है, तो अमान्य PAC स्क्रिप्ट, नेटवर्क स्टैक को डायरेक्ट कनेक्शन में वापस जाने से रोकेगी. डिफ़ॉल्ट तौर पर, 'गलत' पर सेट होती है.
-
url
स्ट्रिंग ज़रूरी नहीं
इस्तेमाल की जाने वाली PAC फ़ाइल का यूआरएल.
ProxyConfig
एक ऑब्जेक्ट, जिसमें पूरा प्रॉक्सी कॉन्फ़िगरेशन शामिल है.
प्रॉपर्टी
-
मोड
'डायरेक्ट' = प्रॉक्सी का कभी भी इस्तेमाल न करें 'auto_detect' = प्रॉक्सी सेटिंग का अपने आप पता लगाएं 'पैक_स्क्रिप्ट' = दी गई PAC स्क्रिप्ट का इस्तेमाल करें 'फ़िक्स्ड_सर्वर' = मैन्युअल रूप से प्रॉक्सी सर्वर दर्ज करें 'सिस्टम' = सिस्टम प्रॉक्सी सेटिंग का उपयोग करें
-
pacScript
PacScript ज़रूरी नहीं
इस कॉन्फ़िगरेशन के लिए प्रॉक्सी ऑटो-कॉन्फ़िगरेशन (PAC) स्क्रिप्ट. 'pac_script' के लिए इसका इस्तेमाल करें मोड.
-
नियम
ProxyRules वैकल्पिक
इस कॉन्फ़िगरेशन के बारे में बताने वाले प्रॉक्सी नियम. इसे 'fixed_servers' के लिए इस्तेमाल करें मोड.
ProxyRules
एक ऑब्जेक्ट, जिसमें सभी प्रोटोकॉल के लिए प्रॉक्सी नियमों के सेट को इनकैप्सुलेट किया जाता है. 'सिंगलप्रॉक्सी' में से किसी एक का इस्तेमाल करें या 'ProxyForHttp', 'प्रॉक्सीForHttps', 'ProxyForFtp' का (इसका सबसेट) और 'फ़ॉलबैकप्रॉक्सी' का इस्तेमाल करना चाहिए.
प्रॉपर्टी
-
bypassList
स्ट्रिंग[] ज़रूरी नहीं
बिना किसी प्रॉक्सी सर्वर के कनेक्ट करने वाले सर्वर की सूची.
-
fallbackProxy
ProxyServer ज़रूरी नहीं
किसी भी अन्य चीज़ के लिए उपयोग किया जाने वाला प्रॉक्सी सर्वर या यदि कोई विशिष्ट प्रॉक्सी सर्वर... निर्दिष्ट नहीं किया गया है.
-
proxyForFtp
ProxyServer ज़रूरी नहीं
एफ़टीपी अनुरोधों के लिए इस्तेमाल किया जाने वाला प्रॉक्सी सर्वर.
-
proxyForHttp
ProxyServer ज़रूरी नहीं
एचटीटीपी अनुरोधों के लिए इस्तेमाल किया जाने वाला प्रॉक्सी सर्वर.
-
proxyForHttps
ProxyServer ज़रूरी नहीं
एचटीटीपीएस अनुरोधों के लिए इस्तेमाल किया जाने वाला प्रॉक्सी सर्वर.
-
singleProxy
ProxyServer ज़रूरी नहीं
हर यूआरएल के लिए सभी अनुरोधों (जो कि एचटीटीपी, एचटीटीपीएस, और एफ़टीपी) के लिए इस्तेमाल किया जाने वाला प्रॉक्सी सर्वर.
ProxyServer
ऐसा ऑब्जेक्ट जिसमें एक प्रॉक्सी सर्वर की खास जानकारी शामिल होती है.
प्रॉपर्टी
-
होस्ट
स्ट्रिंग
प्रॉक्सी सर्वर का होस्टनेम या आईपी पता. होस्टनेम, ASCII (Puycode फ़ॉर्मैट में) में होने चाहिए. IDNA की सुविधा अभी काम नहीं कर रही है.
-
पोर्ट
नंबर वैकल्पिक
प्रॉक्सी सर्वर का पोर्ट. यह डिफ़ॉल्ट रूप से, स्कीम के हिसाब से पोर्ट को डिफ़ॉल्ट तौर पर सेट हो जाता है.
-
स्कीम
स्कीम ज़रूरी नहीं
प्रॉक्सी सर्वर की स्कीम (प्रोटोकॉल). डिफ़ॉल्ट तौर पर यह 'http' पर सेट होता है.
Scheme
Enum
"http"
"https"
"क्विक"
"socks4"
"socks5"
प्रॉपर्टी
settings
इस्तेमाल की जाने वाली प्रॉक्सी सेटिंग. इस सेटिंग की वैल्यू एक प्रॉक्सी कॉन्फ़िगरेशन ऑब्जेक्ट है.
टाइप
types.ChromeSetting<ProxyConfig>
इवेंट
onProxyError
chrome.proxy.onProxyError.addListener(
callback: function,
)
प्रॉक्सी गड़बड़ियों के बारे में सूचना देता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:(details: object) => void
-
विवरण
ऑब्जेक्ट
-
विवरण
स्ट्रिंग
JavaScript रनटाइम गड़बड़ी जैसी गड़बड़ी के बारे में ज़्यादा जानकारी.
-
गड़बड़ी
स्ट्रिंग
गड़बड़ी की जानकारी.
-
fatal
बूलियन
अगर सही था, तो गड़बड़ी गंभीर थी और नेटवर्क ट्रांज़ैक्शन रद्द कर दिया गया था. अगर ऐसा नहीं है, तो सीधे कनेक्शन का इस्तेमाल किया जाता है.
-
-