chrome.proxy

বর্ণনা

ক্রোমের প্রক্সি সেটিংস পরিচালনা করতে chrome.proxy API ব্যবহার করুন। এই API-টি প্রক্সি কনফিগারেশন পেতে এবং সেট করতে type API-এর ChromeSetting প্রোটোটাইপের উপর নির্ভর করে।

অনুমতি

proxy

প্রকাশ

প্রক্সি সেটিংস এপিআই ব্যবহার করার জন্য আপনাকে এক্সটেনশন ম্যানিফেস্টে 'প্রক্সি' পারমিশনটি অবশ্যই ঘোষণা করতে হবে। উদাহরণস্বরূপ:

{
  "name": "My extension",
  ...
  "permissions": [
    "proxy"
  ],
  ...
}

বস্তু এবং বৈশিষ্ট্য

প্রক্সি সেটিংস একটি proxy.ProxyConfig অবজেক্টে সংজ্ঞায়িত করা হয়। Chrome-এর প্রক্সি সেটিংসের উপর নির্ভর করে, এই সেটিংসে proxy.ProxyRules অথবা proxy.PacScript থাকতে পারে।

প্রক্সি মোড

একটি ProxyConfig অবজেক্টের mode অ্যাট্রিবিউট প্রক্সি ব্যবহারের ক্ষেত্রে ক্রোমের সামগ্রিক আচরণ নির্ধারণ করে। এটি নিম্নলিখিত মানগুলি গ্রহণ করতে পারে:

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 অবজেক্টে সংহিতাবদ্ধ করা হয়। এর গঠন Proxy rules অংশে বর্ণনা করা হয়েছে। এ ছাড়া, fixed_servers মোডে ProxyConfig অবজেক্টে আর কোনো প্যারামিটার যুক্ত করার অনুমতি নেই।
system
system মোডে প্রক্সি কনফিগারেশন অপারেটিং সিস্টেম থেকে নেওয়া হয়। এই মোডে ProxyConfig অবজেক্টে আর কোনো প্যারামিটার যোগ করা যায় না। মনে রাখবেন যে, system মোড এবং কোনো প্রক্সি কনফিগারেশন সেট না করার মধ্যে পার্থক্য রয়েছে। পরের ক্ষেত্রে, যদি কোনো কমান্ড-লাইন অপশন প্রক্সি কনফিগারেশনকে প্রভাবিত না করে, তবেই ক্রোম সিস্টেম সেটিংসে ফিরে যায়।

প্রক্সি নিয়ম

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 ৪৪৩
মোজা৪ ১০৮০
মোজা৫ ১০৮০

বাইপাস তালিকা

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_LITERAL ) সম্বলিত ইউআরএল মেলান। আইপি পরিসর ( PREFIX_LENGTH_IN_BITS ) সিআইডিআর (CIDR) নোটেশন ব্যবহার করে নির্দিষ্ট করা হয়।

প্রদত্ত পরিসরের মধ্যে থাকা যেকোনো আইপি লিটারেল সম্বলিত ইউআরএল মেলান। আইপি পরিসরটি সিআইডিআর (CIDR) নোটেশন ব্যবহার করে নির্দিষ্ট করা হয়। উদাহরণ: "192.168.1.1/16", "fefe:13::abc/33"

<local>

<local> লিটারেল স্ট্রিংটি সিম্পল হোস্টনেমের সাথে মেলে। সিম্পল হোস্টনেম হলো সেটি, যাতে কোনো ডট থাকে না এবং যা কোনো আইপি লিটারেল নয়। উদাহরণস্বরূপ 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"]
  }
};
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() {}
);

পরবর্তী কোড স্নিপেটটি বর্তমানে কার্যকর প্রক্সি সেটিংস কোয়েরি করে। কার্যকর প্রক্সি সেটিংস অন্য কোনো এক্সটেনশন বা কোনো পলিসি দ্বারা নির্ধারিত হতে পারে। বিস্তারিত জানতে Types API ডকুমেন্টেশন দেখুন।

chrome.proxy.settings.get(
  {'incognito': false},
  function(config) {
    console.log(JSON.stringify(config));
  }
);

মনে রাখবেন যে set() এ পাস করা value অবজেক্টটি get() এর কলব্যাক ফাংশনে পাস করা value অবজেক্টের অনুরূপ নয়। পরেরটিতে একটি rules.proxyForHttp.port এলিমেন্ট থাকবে।

প্রকারভেদ

Mode

ক্রোম ৫৪+

এনাম

"সরাসরি"

"স্বয়ংক্রিয়_সনাক্ত"

"প্যাক_স্ক্রিপ্ট"

"স্থির_সার্ভার"

"সিস্টেম"

PacScript

একটি অবজেক্ট যা প্রক্সি অটো-কনফিগারেশন তথ্য ধারণ করে। এর ফিল্ডগুলোর মধ্যে ঠিক একটি অবশ্যই অ-খালি হতে হবে।

বৈশিষ্ট্য

  • ডেটা

    স্ট্রিং ঐচ্ছিক

    একটি পিএসি স্ক্রিপ্ট।

  • বাধ্যতামূলক

    বুলিয়ান ঐচ্ছিক

    যদি সত্য হয়, একটি অবৈধ PAC স্ক্রিপ্ট নেটওয়ার্ক স্ট্যাককে সরাসরি সংযোগে ফিরে যেতে বাধা দেবে। এর ডিফল্ট মান মিথ্যা।

  • ইউআরএল

    স্ট্রিং ঐচ্ছিক

    ব্যবহৃতব্য PAC ফাইলের URL।

ProxyConfig

একটি অবজেক্ট যা একটি সম্পূর্ণ প্রক্সি কনফিগারেশনকে ধারণ করে।

বৈশিষ্ট্য

  • মোড

    'direct' = কখনও প্রক্সি ব্যবহার করবেন না 'auto_detect' = প্রক্সি সেটিংস স্বয়ংক্রিয়ভাবে সনাক্ত করুন 'pac_script' = নির্দিষ্ট PAC স্ক্রিপ্ট ব্যবহার করুন 'fixed_servers' = ম্যানুয়ালি প্রক্সি সার্ভার নির্দিষ্ট করুন 'system' = সিস্টেম প্রক্সি সেটিংস ব্যবহার করুন

  • প্যাকস্ক্রিপ্ট

    এই কনফিগারেশনের জন্য প্রক্সি অটো-কনফিগ (PAC) স্ক্রিপ্ট। 'pac_script' মোডের জন্য এটি ব্যবহার করুন।

  • নিয়ম

    এই কনফিগারেশনটি বর্ণনা করে এমন প্রক্সি নিয়মাবলী। 'fixed_servers' মোডের জন্য এটি ব্যবহার করুন।

ProxyRules

সকল প্রোটোকলের জন্য প্রক্সি নিয়মের সেট ধারণকারী একটি অবজেক্ট। 'singleProxy' অথবা 'proxyForHttp', 'proxyForHttps', 'proxyForFtp' ও 'fallbackProxy'-এর যেকোনো একটি (বা এগুলোর একটি উপসেট) ব্যবহার করুন।

বৈশিষ্ট্য

  • বাইপাস তালিকা

    স্ট্রিং[] ঐচ্ছিক

    প্রক্সি সার্ভার ছাড়া সংযোগ করার জন্য সার্ভারগুলোর তালিকা।

  • ফলব্যাকপ্রক্সি

    অন্য সবকিছুর জন্য অথবা যদি নির্দিষ্ট কোনো 'proxyFor...' উল্লেখ করা না থাকে, তাহলে যে প্রক্সি সার্ভারটি ব্যবহার করা হবে।

  • প্রক্সিফরএফটিপি

    FTP অনুরোধের জন্য ব্যবহৃত প্রক্সি সার্ভার।

  • proxyForHttp

    HTTP অনুরোধের জন্য ব্যবহৃত প্রক্সি সার্ভার।

  • proxyForHttps

    HTTPS অনুরোধের জন্য ব্যবহৃত প্রক্সি সার্ভার।

  • একক প্রক্সি

    প্রতিটি ইউআরএল-ভিত্তিক সকল অনুরোধের (অর্থাৎ http, https, এবং ftp) জন্য যে প্রক্সি সার্ভারটি ব্যবহার করা হবে।

ProxyServer

একটি অবজেক্ট যা একটিমাত্র প্রক্সি সার্ভারের স্পেসিফিকেশনকে এনক্যাপসুলেট করে।

বৈশিষ্ট্য

  • হোস্ট

    স্ট্রিং

    প্রক্সি সার্ভারের হোস্টনেম বা আইপি অ্যাড্রেস। হোস্টনেম অবশ্যই ASCII (পুনিকোড ফরম্যাটে) হতে হবে। IDNA এখনও সমর্থিত নয়।

  • বন্দর

    সংখ্যা ঐচ্ছিক

    প্রক্সি সার্ভারের পোর্ট। ডিফল্ট হিসেবে এটি এমন একটি পোর্ট ব্যবহার করে যা স্কিমের উপর নির্ভর করে।

  • পরিকল্পনা

    স্কিম ঐচ্ছিক

    প্রক্সি সার্ভারটির নিজস্ব স্কিম (প্রোটোকল)। ডিফল্ট হিসেবে 'http' থাকে।

Scheme

ক্রোম ৫৪+

এনাম

"http"

"https"

"কুইক"

"মোজা৪"

"মোজা৫"

বৈশিষ্ট্য

settings

ব্যবহৃতব্য প্রক্সি সেটিংস। এই সেটিংটির মান হলো একটি ProxyConfig অবজেক্ট।

প্রকার

ইভেন্টগুলি

onProxyError

chrome.proxy.onProxyError.addListener(
  callback: function,
)

প্রক্সি ত্রুটি সম্পর্কে অবহিত করে।

প্যারামিটার

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    (details: object) => void

    • বিস্তারিত

      বস্তু

      • বিস্তারিত

        স্ট্রিং

        ত্রুটি সম্পর্কে অতিরিক্ত বিবরণ, যেমন জাভাস্ক্রিপ্ট রানটাইম ত্রুটি।

      • ত্রুটি

        স্ট্রিং

        ত্রুটির বিবরণ।

      • মারাত্মক

        বুলিয়ান

        যদি সত্য হয়, তবে ত্রুটিটি মারাত্মক ছিল এবং নেটওয়ার্ক লেনদেনটি বাতিল করা হয়েছিল। অন্যথায়, এর পরিবর্তে একটি সরাসরি সংযোগ ব্যবহার করা হয়।