বিবরণ
Chrome-এর প্রক্সি সেটিংস ম্যানেজ করতে chrome.proxy API ব্যবহার করুন। প্রক্সি কনফিগারেশন পাওয়া ও সেট করার জন্য এই API API-এর ChromeSetting প্রোটোটাইপের উপর নির্ভর করে।
অনুমতি
proxyপ্রক্সি সেটিংস API ব্যবহার করতে, আপনাকে এক্সটেনশন ম্যানিফেস্টে "প্রক্সি" অনুমতি ঘোষণা করতে হবে। যেমন:
{
"name": "My extension",
...
"permissions": [
"proxy"
],
...
}
ধারণা ও ব্যবহার
proxy.ProxyConfig অবজেক্টে প্রক্সি সেটিংস সংজ্ঞায়িত করা হয়। Chrome-এর প্রক্সি সেটিংসের উপর নির্ভর করে,
সেটিংসে proxy.ProxyRules বা proxy.PacScript থাকতে পারে।
প্রক্সি মোড
ProxyConfig অবজেক্টের mode অ্যাট্রিবিউট, প্রক্সি ব্যবহার সংক্রান্ত
Chrome-এর সামগ্রিক আচরণ নির্ধারণ করে। এটি নিম্নলিখিত মান নিতে পারে:
directdirectমোডে, কোনও প্রক্সি ব্যবহার না করেই সরাসরি সব কানেকশন তৈরি করা হয়। এই মোডেProxyConfigঅবজেক্টে
কোনও প্যারামিটার যোগ করা যায় না।
auto_detectauto_detectমোডে প্রক্সি কনফিগারেশন একটি PAC স্ক্রিপ্ট দ্বারা নির্ধারিত হয় যা http://wpad/wpad.dat থেকে ডাউনলোড করা যেতে পারে। এই মোডেProxyConfigঅবজেক্টে আর কোনও প্যারামিটার ব্যবহার করা যায় না।
pac_scriptpac_scriptমোডে, প্রক্সি কনফিগারেশন একটি PAC স্ক্রিপ্ট দ্বারা নির্ধারিত হয় যাproxy.PacScriptঅবজেক্টে নির্দিষ্ট করা URL থেকে রিট্রিভ করা হয় অথবাproxy.PacScriptঅবজেক্টে নির্দিষ্ট করাdataএলিমেন্ট থেকে আক্ষরিক অর্থে নেওয়া হয়। এছাড়াও, এই মোডProxyConfigঅবজেক্টে আর কোনও প্যারামিটার
ব্যবহার করার অনুমতি দেয় না।
fixed_serversfixed_serversমোডে প্রক্সি কনফিগারেশন একটিproxy.ProxyRulesঅবজেক্টে কোড করা থাকে। এর স্ট্রাকচার প্রক্সি নিয়মে বর্ণনা করা আছে। এছাড়াও,fixed_serversমোডেProxyConfigঅবজেক্টে আর কোনও প্যারামিটার
ব্যবহার করা যায় না।
systemsystemমোডে অপারেটিং সিস্টেম থেকে প্রক্সি কনফিগারেশন নেওয়া হয়। এই মোডেProxyConfigঅবজেক্টে কোনও প্যারামিটার আর ব্যবহার করা যায় না। মনে রাখবেন,systemমোড হল কোনও প্রক্সি কনফিগারেশন সেট না করার থেকে আলাদা। পরের ক্ষেত্রে, Chrome শুধুমাত্র তখনই সিস্টেম সেটিংসে ফিরে যায়, যদি কোনও কমান্ড-লাইন বিকল্প প্রক্সি কনফিগারেশনকে প্রভাবিত না করে।
প্রক্সি সংক্রান্ত নিয়ম
proxy.ProxyRules অবজেক্টে singleProxy অ্যাট্রিবিউট অথবা
proxyForHttp, proxyForHttps, proxyForFtp ও fallbackProxy-এর সাবসেট থাকতে পারে।
প্রথম ক্ষেত্রে, HTTP, HTTPS ও FTP ট্রাফিক নির্দিষ্ট প্রক্সি সার্ভারের মাধ্যমে প্রক্সি করা হয়। অন্যান্য
ট্রাফিক সরাসরি পাঠানো হয়। পরের ক্ষেত্রে আচরণটি কিছুটা বেশি সূক্ষ্ম: HTTP, HTTPS বা FTP প্রোটোকলের জন্য কোনও প্রক্সি সার্ভার
কনফিগার করা থাকলে, সংশ্লিষ্ট ট্রাফিক নির্দিষ্ট সার্ভারের
মাধ্যমে প্রক্সি করা হয়। এই ধরনের কোনও প্রক্সি সার্ভার নির্দিষ্ট করা না থাকলে অথবা ট্রাফিক যদি
HTTP, HTTPS বা FTP-এর থেকে আলাদা কোনও প্রোটোকল ব্যবহার করে, তাহলে fallbackProxy ব্যবহার করা হয়। কোনও fallbackProxy নির্দিষ্ট করা না থাকলে, প্রক্সি সার্ভার ছাড়াই সরাসরি
ট্রাফিক পাঠানো হয়।
প্রক্সি সার্ভার অবজেক্ট
proxy.ProxyServer অবজেক্টে প্রক্সি সার্ভার কনফিগার করা হয়। প্রক্সি সার্ভারের সাথে কানেকশন
(host অ্যাট্রিবিউট দ্বারা সংজ্ঞায়িত) scheme অ্যাট্রিবিউটে সংজ্ঞায়িত প্রোটোকল ব্যবহার করে। কোনও
scheme উল্লেখ করা না থাকলে, প্রক্সি কানেকশন ডিফল্ট হিসেবে http হবে।
proxy.ProxyServer অবজেক্টে কোনও port নির্দিষ্ট করা না থাকলে, স্কিম থেকে পোর্ট নেওয়া হয়।
ডিফল্ট পোর্টগুলি হল:
| স্কিম | পোর্ট |
|---|---|
| http | ৮০ |
| 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".প্যাটার্ন ম্যাচ না মেলা URL ".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]IP অ্যাড্রেস লিটেরাল URL-এর সাথে ম্যাচ করে। ধারণাগতভাবে এটি প্রথম কেসের মতোই, তবে IP লিটারেল ক্যাননিক্যালাইজেশন ম্যানেজ করার জন্য বিশেষ কেস রয়েছে। যেমন, "[0:0:0::1]" এবং "[::1]" একই, কারণ IPv6 ক্যানোনিকালাইজেশন ইন্টার্নালি করা হয়।
উদাহরণ:
127.0.1,[0:0::1],[::1]:80,https://[::1]:443IP_LITERAL/PREFIX_LENGTH_IN_BITSপ্রদত্ত রেঞ্জের মধ্যে IP লিটেরাল (
IP_LITERAL) আছে এমন যেকোনও URL-এর সাথে ম্যাচ করে। IP রেঞ্জ (PREFIX_LENGTH_IN_BITS) CIDR notation ব্যবহার করে নির্দিষ্ট করা হয়।প্রদত্ত রেঞ্জের মধ্যে IP লিটেরাল আছে এমন যেকোনও URL ম্যাচ করে। IP রেঞ্জ CIDR নোটেশন ব্যবহার করে নির্দিষ্ট করা হয়। উদাহরণ:
"192.168.1.1/16", "fefe:13::abc/33"<local>লিটারেল স্ট্রিং
<local>সাধারণ হোস্টনেমের সাথে ম্যাচ করে। সহজ হোস্টনেম হল এমন একটি নাম যাতে কোনও ডট থাকে না এবং এটি কোনও IP লিটেরাল নয়। যেমন,exampleওlocalhostহল সাধারণ হোস্টনেম, কিন্তুexample.com,example.ও[::1]তা নয়।উদাহরণ:
"<local>"
উদাহরণ
নিচের কোডটি foobar.com ছাড়া সব সার্ভারের সাথে HTTP কানেকশনের জন্য SOCKS 5 প্রক্সি সেট করে এবং অন্যান্য সব প্রোটোকলের জন্য সরাসরি কানেকশন ব্যবহার করে। এই সেটিংস সাধারণ ও ছদ্মবেশী উইন্ডো, দু'টির ক্ষেত্রেই প্রযোজ্য হয়, কারণ ছদ্মবেশী উইন্ডো সাধারণ উইন্ডো থেকে সেটিংস পায়। এছাড়াও, Types API ডকুমেন্টেশন দেখুন।
var config = {
mode: "fixed_servers",
rules: {
proxyForHttp: {
scheme: "socks5",
host: "1.2.3.4"
},
bypassList: ["foobar.com"]
}
};
browser.proxy.settings.set(
{value: config, scope: 'regular'},
function() {}
);
নিচের কোডটি একটি কাস্টম PAC স্ক্রিপ্ট সেট করে।
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" +
"}"
}
};
browser.proxy.settings.set(
{value: config, scope: 'regular'},
function() {}
);
পরবর্তী স্নিপেট বর্তমান কার্যকর প্রক্সি সেটিংস কোয়েরি করে। প্রক্সি সেটিংসের কার্যকারিতা অন্য কোনও এক্সটেনশন বা কোনও নীতির মাধ্যমে নির্ধারণ করা যেতে পারে। বিস্তারিত জানতে Types API ডকুমেন্টেশন দেখুন।
browser.proxy.settings.get(
{'incognito': false},
function(config) {
console.log(JSON.stringify(config));
}
);
মনে রাখবেন, set()-এ পাস করা value অবজেক্টটি get()-এর
কলব্যাক ফাংশনে পাস করা value অবজেক্টের মতো নয়। পরেরটিতে একটি rules.proxyForHttp.port এলিমেন্ট থাকবে।
ধরন
Mode
Enum
"সরাসরি"
"auto_detect"
"pac_script"
"fixed_servers"
"সিস্টেম"
PacScript
প্রক্সি অটো-কনফিগার সংক্রান্ত তথ্য সহ একটি অবজেক্ট। ফিল্ডগুলির মধ্যে ঠিক একটিতে কিছু লিখতে হবে।
প্রপার্টি
-
ডেটা
স্ট্রিং ঐচ্ছিক
একটি PAC স্ক্রিপ্ট।
-
বাধ্যতামূলক
বুলিয়ান ঐচ্ছিক
সত্য হলে, ভুল PAC স্ক্রিপ্ট নেটওয়ার্ক স্ট্যাককে সরাসরি কানেকশনে ফলব্যাক করতে বাধা দেবে। ডিফল্ট হিসেবে false থাকে।
-
URL
স্ট্রিং ঐচ্ছিক
ব্যবহার করা হবে এমন PAC ফাইলের URL.
ProxyConfig
সম্পূর্ণ প্রক্সি কনফিগারেশন এনক্যাপসুলেট করা একটি অবজেক্ট।
প্রপার্টি
-
মোড
'direct' = কখনও প্রক্সি ব্যবহার করবেন না 'auto_detect' = প্রক্সি সেটিংস অটোমেটিক শনাক্ত করুন 'pac_script' = নির্দিষ্ট PAC স্ক্রিপ্ট ব্যবহার করুন 'fixed_servers' = ম্যানুয়ালি প্রক্সি সার্ভার নির্দিষ্ট করুন 'system' = সিস্টেম প্রক্সি সেটিংস ব্যবহার করুন
-
pacScript
PacScript ঐচ্ছিক
এই কনফিগারেশনের জন্য প্রক্সি অটো-কনফিগার (PAC) স্ক্রিপ্ট। 'pac_script' মোডের জন্য এটি ব্যবহার করুন।
-
নীয়মগুলি
ProxyRules ঐচ্ছিক
এই কনফিগারেশন বর্ণনা করে এমন প্রক্সি নিয়ম। 'fixed_servers' মোডের জন্য এটি ব্যবহার করুন।
ProxyRules
সব প্রোটোকলের জন্য প্রক্সি নিয়মের সেট এনক্যাপসুলেট করা একটি অবজেক্ট। 'singleProxy' অথবা (এর সাবসেট) 'proxyForHttp', 'proxyForHttps', 'proxyForFtp' ও 'fallbackProxy' ব্যবহার করুন।
প্রপার্টি
-
bypassList
string[] ঐচ্ছিক
প্রক্সি সার্ভার ছাড়া কানেক্ট করার জন্য সার্ভারের তালিকা।
-
fallbackProxy
ProxyServer ঐচ্ছিক
অন্য সবকিছুর জন্য বা নির্দিষ্ট proxyFor... উল্লেখ করা না থাকলে ব্যবহার করা হবে এমন প্রক্সি সার্ভার।
-
proxyForFtp
ProxyServer ঐচ্ছিক
FTP অনুরোধের জন্য ব্যবহার করা প্রক্সি সার্ভার।
-
proxyForHttp
ProxyServer ঐচ্ছিক
HTTP অনুরোধের জন্য ব্যবহার করা প্রক্সি সার্ভার।
-
proxyForHttps
ProxyServer ঐচ্ছিক
HTTPS অনুরোধের জন্য ব্যবহার করা প্রক্সি সার্ভার।
-
singleProxy
ProxyServer ঐচ্ছিক
প্রতিটি URL-এর অনুরোধের জন্য (যেমন, http, https ও ftp) ব্যবহার করা হবে এমন প্রক্সি সার্ভার।
ProxyServer
একটি অবজেক্ট যা একটি প্রক্সি সার্ভারের স্পেসিফিকেশনকে এনক্যাপসুলেট করে।
প্রপার্টি
-
হোস্ট
স্ট্রিং
প্রক্সি সার্ভারের হোস্টনেম বা IP অ্যাড্রেস। হোস্টনেম অবশ্যই ASCII (পিউনিকোড ফর্ম্যাটে) হতে হবে। IDNA এখনও কাজ করে না।
-
পোর্ট
নম্বর ঐচ্ছিক
প্রক্সি সার্ভারের পোর্ট। স্কিমের উপর নির্ভর করে ডিফল্ট হিসেবে একটি পোর্ট বেছে নেওয়া হয়।
-
স্কিম
স্কিম ঐচ্ছিক
প্রক্সি সার্ভারের স্কিম (প্রোটোকল)। ডিফল্ট হিসেবে 'http' সেট করা থাকে।
Scheme
Enum
"http"
"https"
"quic"
"socks4"
"socks5"
প্রপার্টি
settings
প্রক্সি সেটিংস ব্যবহার করা হবে। এই সেটিংয়ের ভ্যালু হল ProxyConfig অবজেক্ট।
ইভেন্ট
onProxyError
chrome.proxy.onProxyError.addListener(
callback: function,
)
প্রক্সি সংক্রান্ত সমস্যার ব্যাপারে বিজ্ঞপ্তি পাঠায়।
প্যারামিটারগুলি
-
কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এমন:(details: object) => void
-
বিস্তারিত বিবরণ
অবজেক্ট
-
বিস্তারিত বিবরণ
স্ট্রিং
JavaScript রানটাইম সমস্যার মতো সমস্যা সম্পর্কিত অতিরিক্ত বিবরণ।
-
সমস্যা
স্ট্রিং
সমস্যার বিবরণ।
-
মারাত্মক
বুলিয়ান
ট্রু হলে, সমস্যাটি গুরুতর এবং নেটওয়ার্ক ট্রানজ্যাকশন বাতিল করা হয়েছে। অন্যথায়, এর পরিবর্তে সরাসরি কানেকশন ব্যবহার করা হয়।
-
-