chrome.proxy

বর্ণনা

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

Chrome 54+

এনাম

"সরাসরি"

"অটো_ডিটেক্ট"

"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

Chrome 54+

এনাম

"http"

"https"

"দ্রুত"

"মোজা 4"

"মোজা 5"

বৈশিষ্ট্য

settings

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

ঘটনা

onProxyError

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

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

পরামিতি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি এর মতো দেখাচ্ছে:

    (details: object) => void

    • বিস্তারিত

      বস্তু

      • বিস্তারিত

        স্ট্রিং

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

      • ত্রুটি

        স্ট্রিং

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

      • মারাত্মক

        বুলিয়ান

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