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