Skill

JSONP কি এবং কেন ব্যবহার করা হয়?

JSONP (JSON with Padding) - জেসন (JSON) - Java Technologies

296

JSONP (JSON with Padding) হল একটি টেকনিক যা Cross-Origin Resource Sharing (CORS) সীমাবদ্ধতাগুলো বাইপাস করতে ব্যবহৃত হয়। এটি মূলত ওয়েব অ্যাপ্লিকেশনগুলিতে Cross-Domain (একটি ডোমেইন থেকে অন্য ডোমেইনে ডেটা পাঠানো বা গ্রহণ করা) রিকোয়েস্টের ক্ষেত্রে ব্যবহৃত হয়। এটি ওয়েব ব্রাউজারে ডোমেইন রিকোয়েস্টের উপর যে নিরাপত্তা নীতি প্রয়োগ করা হয় (যেমন Same-Origin Policy) তা এড়াতে সাহায্য করে।

JSONP এর ধারণা

JSONP হল একটি প্রযুক্তি যেখানে JSON ডেটাকে একটি callback function এর মাধ্যমে পাঠানো হয়। এটি মূলত script ট্যাগের মাধ্যমে করা হয়, কারণ script ট্যাগের মাধ্যমে ক্রস-ডোমেইন রিকোয়েস্ট করা সম্ভব, যেখানে অন্যান্য HTTP রিকোয়েস্ট যেমন AJAX রিকোয়েস্ট সাধারণত Same-Origin Policy-র কারণে সীমাবদ্ধ থাকে।

JSONP এর মাধ্যমে এক ডোমেইন থেকে আরেক ডোমেইনে JSON ডেটা পাঠানো বা গ্রহণ করা যায়, যা CORS (Cross-Origin Resource Sharing) সীমাবদ্ধতা এড়ানোর একটি পুরনো পদ্ধতি।

JSONP কীভাবে কাজ করে?

  1. ক্লায়েন্ট (যেমন ওয়েব ব্রাউজার) একটি script ট্যাগ তৈরি করে এবং এটি অন্য ডোমেইনে পাঠায়।
  2. সার্ভার JSON ডেটার সাথে একটি callback function প্যাকেজ করে পাঠায়।
  3. ব্রাউজার সেই ডেটা পেয়ে callback function-এর মাধ্যমে ডেটা প্রসেস করে।

JSONP উদাহরণ:

ধরা যাক, একটি সার্ভার https://api.example.com থেকে JSON ডেটা প্রদান করছে এবং ক্লায়েন্ট সাইট https://mywebsite.com এ বসে সেই ডেটা গ্রহণ করতে চাচ্ছে।

1. ক্লায়েন্টের রিকোয়েস্ট (script tag):

<script src="https://api.example.com/data?callback=myCallback"></script>

এখানে callback=myCallback প্যারামিটারটি জানাচ্ছে যে সার্ভারটি myCallback নামে একটি ফাংশন ব্যবহার করবে JSON ডেটা রিটার্ন করতে।

2. সার্ভারের রেসপন্স:

myCallback({
    "name": "John",
    "age": 30,
    "city": "New York"
});

এখানে, সার্ভার JSON ডেটা পাঠাচ্ছে যা myCallback ফাংশনের মধ্যে প্যাকেজ করা হয়েছে।

3. ক্লায়েন্ট সাইটে কলব্যাক ফাংশন:

function myCallback(data) {
    console.log(data);
    // Output: { name: 'John', age: 30, city: 'New York' }
}

এখানে, ব্রাউজার রিসিভ করা JSON ডেটা myCallback ফাংশনে পাস করে এবং ক্লায়েন্ট সাইটে ডেটাটি প্রসেস করা হয়।


JSONP কেন ব্যবহার করা হয়?

JSONP মূলত Cross-Domain রিকোয়েস্টের জন্য ব্যবহৃত হয়। ওয়েব অ্যাপ্লিকেশনগুলিতে যখন এক ডোমেইন থেকে অন্য ডোমেইনে ডেটা পাঠানো বা গ্রহণ করা হয়, তখন ব্রাউজারের Same-Origin Policy-র কারণে এটি সীমাবদ্ধ থাকে। JSONP ব্যবহার করার মাধ্যমে এই সীমাবদ্ধতাকে এড়ানো সম্ভব।

JSONP ব্যবহার করার কারণসমূহ:

  1. Cross-Domain রিকোয়েস্ট:
    • ব্রাউজারে AJAX রিকোয়েস্ট ব্যবহার করলে Same-Origin Policy দ্বারা সীমাবদ্ধ থাকে, তবে JSONP ব্যবহার করে এক ডোমেইন থেকে অন্য ডোমেইনে রিকোয়েস্ট করা যায়।
  2. CORS সীমাবদ্ধতা এড়ানো:
    • CORS (Cross-Origin Resource Sharing) ওয়েব অ্যাপ্লিকেশনগুলোতে এক ডোমেইন থেকে অন্য ডোমেইনে ডেটা রিকোয়েস্ট করার সময় সিকিউরিটি ফিচার হিসেবে কাজ করে। JSONP এই সীমাবদ্ধতা এড়ানোর একটি পদ্ধতি।
  3. সাধারণ JSON এর চেয়ে দ্রুত:
    • JSONP রিকোয়েস্ট script ট্যাগ ব্যবহার করে, যা AJAX রিকোয়েস্টের চেয়ে দ্রুত হতে পারে কারণ script ট্যাগ কেবলমাত্র GET রিকোয়েস্ট সমর্থন করে এবং এতে কোনও CORS সমস্যা থাকে না।

JSONP এর সীমাবদ্ধতা:

  1. Security Issues:
    • JSONP নিরাপত্তার দিক থেকে ঝুঁকিপূর্ণ হতে পারে। এটি সার্ভার থেকে কোনো কোড (callback function) সরাসরি ক্লায়েন্ট সাইটে রান করতে পারে, যা cross-site scripting (XSS) আক্রমণ ঘটাতে পারে।
  2. GET রিকোয়েস্টের সীমাবদ্ধতা:
    • JSONP শুধুমাত্র GET রিকোয়েস্টের মাধ্যমে কাজ করে, যার মানে হল যে POST বা PUT রিকোয়েস্ট করা সম্ভব নয়। এটি JSONP এর ব্যবহারকে সীমাবদ্ধ করে।
  3. Error Handling:
    • JSONP তে ত্রুটি সনাক্তকরণ (error handling) আরও কঠিন, কারণ এখানে একে অপরের উপর নির্ভরশীল callback function থাকে। ত্রুটি ঘটলে এটি সমাধান করা বেশ কঠিন।
  4. Fallback Mechanism:
    • অনেক ক্ষেত্রে JSONP কাজ না করলে fallback হিসেবে অন্যান্য পদ্ধতি ব্যবহার করা প্রয়োজন।

সারাংশ

JSONP হল একটি পুরনো টেকনিক যা Cross-Domain রিকোয়েস্ট করা সহজ করে এবং Same-Origin Policy এবং CORS সীমাবদ্ধতাগুলি বাইপাস করতে ব্যবহৃত হয়। এটি script ট্যাগের মাধ্যমে JSON ডেটা প্রসেস করতে সক্ষম হয়, যা ক্লায়েন্ট সাইটে সিকিউরিটি সমস্যা সৃষ্টি করতে পারে। বর্তমানে CORS এবং অন্যান্য আধুনিক টেকনিকের জন্য JSONP কম ব্যবহৃত হচ্ছে, তবে কিছু পুরানো সিস্টেমে এখনও JSONP ব্যবহৃত হয়।

Content added By
Promotion

Are you sure to start over?

Loading...