JSONP (JSON with Padding) হল একটি প্রযুক্তি যা মূলত Cross-Domain (ক্রস-ডোমেইন) AJAX রিকোয়েস্ট করতে ব্যবহৃত হয়। এটি JSON ডেটা ফরম্যাটের একটি উন্নত সংস্করণ যা ওয়েব ব্রাউজারে Cross-Origin Resource Sharing (CORS) নীতি থেকে মুক্ত থাকার জন্য তৈরি করা হয়েছিল। JSONP এমন একটি পদ্ধতি, যেখানে JSON ডেটাকে JavaScript ফাংশনে প্যাড করা হয় এবং এটি ক্লায়েন্ট সাইডে JavaScript কোড হিসেবে এক্সিকিউট করা হয়।
JSONP একটি কৌশল, যেখানে ডেটা ফেচ করার জন্য একটি <script>
ট্যাগ ব্যবহার করা হয়। এটি সাধারণত JSON ডেটাকে একটি কলব্যাক ফাংশনের মাধ্যমে প্যাড করে দেয়। এই টেকনিকটি মূলত Cross-Domain রিকোয়েস্ট সমর্থন করে, যেটি সাধারণভাবে AJAX-এর মাধ্যমে সম্ভব নয় কারণ ব্রাউজারের সিকিউরিটি পলিসি Same-Origin Policy অনুসরণ করে। Same-Origin Policy এর মাধ্যমে একটি ওয়েব পেজ শুধুমাত্র সেই ডোমেইনের সাথে যোগাযোগ করতে পারে, যেটি সেই পেজের মূল ডোমেইন।
JSONP পদ্ধতিতে সার্ভার থেকে JSON ডেটা প্রাপ্তি একটি JavaScript ফাংশনের মাধ্যমে ঘটে, যা সাধারণত ক্লায়েন্ট সাইডে callback হিসেবে পাঠানো হয়। এতে সার্ভার একটি JSON অবজেক্ট পাঠায় যা ফাংশনে প্যাড করা থাকে।
একটি JSONP রিকোয়েস্টের মূল কাঠামো হল:
<script>
ট্যাগ ব্যবহার করে সার্ভারে JSONP রিকোয়েস্ট পাঠায় এবং রিকোয়েস্টের মধ্যে কলব্যাক ফাংশনের নাম অন্তর্ভুক্ত করে।function fetchData() {
var script = document.createElement('script');
script.src = 'https://api.example.com/data?callback=processData';
document.body.appendChild(script);
}
function processData(data) {
console.log(data);
// এখানে JSON ডেটা প্রসেস করা হবে
}
এখানে, fetchData()
ফাংশনটি সার্ভারের কাছে একটি স্ক্রিপ্ট রিকোয়েস্ট পাঠায়, যেখানে callback=processData
প্যারামিটারটি রয়েছে। এটি সার্ভারকে জানায় যে, প্রাপ্ত JSON ডেটা processData()
ফাংশনের মাধ্যমে প্রসেস করা হবে।
সার্ভারটি নিম্নরূপে JSONP রেসপন্স ফেরত পাঠাবে:
processData({
name: "John",
age: 30
});
এখানে, সার্ভার processData()
ফাংশনের মধ্যে JSON ডেটা প্যাড করে পাঠাচ্ছে, যা ক্লায়েন্ট সাইডে এক্সিকিউট হবে।
বৈশিষ্ট্য | JSON | JSONP |
---|---|---|
ডেটার প্রক্রিয়া | JSON ডেটা সাধারণত অ্যাপ্লিকেশনে প্রক্রিয়া করা হয় | JSONP ডেটা কলব্যাক ফাংশনের মাধ্যমে প্রক্রিয়া করা হয় |
Cross-Domain Request | JSON সাধারণত Cross-Domain রিকোয়েস্ট সমর্থন করে না | JSONP Cross-Domain রিকোয়েস্ট সমর্থন করে |
নিরাপত্তা | JSON নিরাপদ | JSONP নিরাপত্তার জন্য ঝুঁকিপূর্ণ হতে পারে |
HTTP মেথড | JSON সমস্ত HTTP মেথড সমর্থন করে | JSONP শুধুমাত্র GET মেথড সমর্থন করে |
ব্যবহার | JSON API যোগাযোগের জন্য ব্যবহৃত হয় | JSONP মূলত Cross-Domain ডেটা ফেচিংয়ের জন্য ব্যবহৃত হয় |
JSONP (JSON with Padding) হল একটি পুরানো, তবে কার্যকরী কৌশল যা Cross-Domain AJAX রিকোয়েস্টের জন্য ব্যবহৃত হয়। এটি JSON ডেটাকে একটি কলব্যাক ফাংশনের মাধ্যমে প্যাড করে এবং ক্লায়েন্ট সাইডে তা প্রক্রিয়া করা যায়। যদিও JSONP এর কিছু সীমাবদ্ধতা এবং নিরাপত্তা ঝুঁকি রয়েছে, তবুও এটি এমন পরিবেশে কার্যকর যেখানে CORS সমর্থন না থাকে বা অ্যাপ্লিকেশন দ্রুত Cross-Domain ডেটা ফেচ করতে চায়।
JSONP (JSON with Padding) হল একটি টেকনিক যা Cross-Origin Resource Sharing (CORS) সীমাবদ্ধতাগুলো বাইপাস করতে ব্যবহৃত হয়। এটি মূলত ওয়েব অ্যাপ্লিকেশনগুলিতে Cross-Domain (একটি ডোমেইন থেকে অন্য ডোমেইনে ডেটা পাঠানো বা গ্রহণ করা) রিকোয়েস্টের ক্ষেত্রে ব্যবহৃত হয়। এটি ওয়েব ব্রাউজারে ডোমেইন রিকোয়েস্টের উপর যে নিরাপত্তা নীতি প্রয়োগ করা হয় (যেমন Same-Origin Policy) তা এড়াতে সাহায্য করে।
JSONP হল একটি প্রযুক্তি যেখানে JSON ডেটাকে একটি callback function এর মাধ্যমে পাঠানো হয়। এটি মূলত script ট্যাগের মাধ্যমে করা হয়, কারণ script
ট্যাগের মাধ্যমে ক্রস-ডোমেইন রিকোয়েস্ট করা সম্ভব, যেখানে অন্যান্য HTTP রিকোয়েস্ট যেমন AJAX রিকোয়েস্ট সাধারণত Same-Origin Policy-র কারণে সীমাবদ্ধ থাকে।
JSONP এর মাধ্যমে এক ডোমেইন থেকে আরেক ডোমেইনে JSON ডেটা পাঠানো বা গ্রহণ করা যায়, যা CORS (Cross-Origin Resource Sharing) সীমাবদ্ধতা এড়ানোর একটি পুরনো পদ্ধতি।
ধরা যাক, একটি সার্ভার https://api.example.com
থেকে JSON ডেটা প্রদান করছে এবং ক্লায়েন্ট সাইট https://mywebsite.com
এ বসে সেই ডেটা গ্রহণ করতে চাচ্ছে।
<script src="https://api.example.com/data?callback=myCallback"></script>
এখানে callback=myCallback
প্যারামিটারটি জানাচ্ছে যে সার্ভারটি myCallback নামে একটি ফাংশন ব্যবহার করবে JSON ডেটা রিটার্ন করতে।
myCallback({
"name": "John",
"age": 30,
"city": "New York"
});
এখানে, সার্ভার JSON ডেটা পাঠাচ্ছে যা myCallback ফাংশনের মধ্যে প্যাকেজ করা হয়েছে।
function myCallback(data) {
console.log(data);
// Output: { name: 'John', age: 30, city: 'New York' }
}
এখানে, ব্রাউজার রিসিভ করা JSON ডেটা myCallback
ফাংশনে পাস করে এবং ক্লায়েন্ট সাইটে ডেটাটি প্রসেস করা হয়।
JSONP মূলত Cross-Domain রিকোয়েস্টের জন্য ব্যবহৃত হয়। ওয়েব অ্যাপ্লিকেশনগুলিতে যখন এক ডোমেইন থেকে অন্য ডোমেইনে ডেটা পাঠানো বা গ্রহণ করা হয়, তখন ব্রাউজারের Same-Origin Policy-র কারণে এটি সীমাবদ্ধ থাকে। JSONP ব্যবহার করার মাধ্যমে এই সীমাবদ্ধতাকে এড়ানো সম্ভব।
JSONP হল একটি পুরনো টেকনিক যা Cross-Domain রিকোয়েস্ট করা সহজ করে এবং Same-Origin Policy এবং CORS সীমাবদ্ধতাগুলি বাইপাস করতে ব্যবহৃত হয়। এটি script ট্যাগের মাধ্যমে JSON ডেটা প্রসেস করতে সক্ষম হয়, যা ক্লায়েন্ট সাইটে সিকিউরিটি সমস্যা সৃষ্টি করতে পারে। বর্তমানে CORS এবং অন্যান্য আধুনিক টেকনিকের জন্য JSONP কম ব্যবহৃত হচ্ছে, তবে কিছু পুরানো সিস্টেমে এখনও JSONP ব্যবহৃত হয়।
JSONP (JSON with Padding) একটি পুরোনো, কিন্তু জনপ্রিয় কৌশল যা ব্যবহার করা হয় cross-domain (অথবা cross-origin) রিকোয়েস্ট সম্পাদন করতে, বিশেষ করে যখন ওয়েব ব্রাউজারে same-origin policy (সেইম-অরিজিন পলিসি) অ্যাপ্লিকেশন এবং API এ বিভিন্ন ডোমেইন থেকে ডেটা ফেচ করা হয়।
JSONP একটি প্রযুক্তি যা মূলত JavaScript এর মাধ্যমে JSON ডেটা লোড করতে ব্যবহৃত হয়, যেখানে JSON ডেটা একটি callback ফাংশন হিসেবে রেন্ডার করা হয়। JSONP ব্রাউজারের সিকিউরিটি সীমাবদ্ধতা (যেমন: CORS) বাইপাস করতে সাহায্য করে, যা মূলত এক ডোমেইন থেকে অন্য ডোমেইনে ডেটা রিকোয়েস্টের ক্ষেত্রে নিষেধাজ্ঞা আরোপ করে।
এটি মূলত একটি script tag ব্যবহার করে কাজ করে। যখন একটি script ট্যাগকে অন্য ডোমেইনে প্রেরণ করা হয়, তখন same-origin policy ব্রাউজার কর্তৃক বাধাগ্রস্ত হয় না, কারণ script ট্যাগটি ক্রস-ডোমেইনে কাজ করতে সক্ষম।
script
ট্যাগ তৈরি করে এবং অন্য ডোমেইনের API URL এ রিকোয়েস্ট পাঠায়।ধরা যাক, একটি ওয়েব অ্যাপ্লিকেশন অন্য একটি ডোমেইন থেকে ডেটা ফেচ করবে।
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JSONP Example</title>
</head>
<body>
<h2>JSONP Example</h2>
<script>
// Callback ফাংশন যা JSON ডেটা প্রক্রিয়া করবে
function handleResponse(data) {
console.log('Received data:', data);
document.body.innerHTML += `<p>Name: ${data.name}, Age: ${data.age}</p>`;
}
// JSONP রিকোয়েস্ট তৈরি করা (একটি সিক্রেট API থেকে ডেটা ফেচ করা)
var script = document.createElement('script');
script.src = 'https://api.example.com/data?callback=handleResponse'; // API URL যেখানে JSONP সমর্থিত
document.head.appendChild(script);
</script>
</body>
</html>
ব্যাখ্যা:
callback=handleResponse
যোগ করা হয়েছে, যা সার্ভারকে নির্দেশ দেয় যে, JSON ডেটা handleResponse ফাংশনের ভিতরে প্যাক করা হবে।https://api.example.com/data
থেকে JSONP রিকোয়েস্ট পাঠাবে।এটি কিভাবে সার্ভার সাইডে প্রক্রিয়া করা হবে, তার একটি উদাহরণ। নিচের কোডটি একটি সার্ভারের JavaScript API এর অংশ।
// Server-side (Node.js example)
// Express.js ব্যবহার করা হচ্ছে
const express = require('express');
const app = express();
app.get('/data', (req, res) => {
// Callback ফাংশন নামটি URL থেকে পাওয়া হচ্ছে
const callback = req.query.callback;
// JSON ডেটা যা আমরা ক্লায়েন্টে পাঠাতে চাই
const data = {
name: "John Doe",
age: 30
};
// JSONP রেসপন্স পাঠানো
res.type('text/javascript');
res.send(`${callback}(${JSON.stringify(data)})`);
});
app.listen(3000, () => {
console.log("Server is running on port 3000");
});
ব্যাখ্যা:
বর্তমানে, Cross-Origin Resource Sharing (CORS) একটি নিরাপদ বিকল্প হিসাবে ব্যবহৃত হয়, যা JSONP এর মতো কাজ করে, তবে এটি নিরাপদ এবং আরও বেশি কনফিগারেবল। CORS ব্যবহারের মাধ্যমে সার্ভারগুলি স্পেসিফিক রিকোয়েস্টের জন্য অনুমোদিত ডোমেইন সমর্থন করতে পারে।
JSONP (JSON with Padding) হলো একটি প্রাচীন কৌশল, যা cross-domain requests সমর্থন করার জন্য ব্যবহৃত হয়। এটি সার্ভারের JSON রেসপন্সকে একটি callback function এর মাধ্যমে প্যাক করে ব্রাউজারের মাধ্যমে অন্য ডোমেইন থেকে ডেটা ফেচ করার সুযোগ দেয়। যদিও এটি কার্যকরী, তবে JSONP নিরাপত্তার জন্য ঝুঁকিপূর্ণ হতে পারে এবং এটি কেবল GET রিকোয়েস্ট সমর্থন করে। আজকাল CORS একটি নিরাপদ বিকল্প হিসেবে ব্যবহৃত হয়।
JSONP (JSON with Padding) হল একটি প্রযুক্তি যা ওয়েব পৃষ্ঠার একটি স্ক্রিপ্ট ট্যাগ ব্যবহার করে সিক্যুর HTTP রিকোয়েস্টের মাধ্যমে ডেটা পাওয়ার জন্য ব্যবহৃত হয়। এটি মূলত ব্রাউজারের Same-Origin Policy (SOP) এর সীমাবদ্ধতা পেরিয়ে API থেকে ডেটা রিট্রিভ করতে ব্যবহৃত হয়, যা মূলত Cross-Origin Resource Sharing (CORS) কে বাইপাস করে। যদিও JSONP একটি কার্যকরী পদ্ধতি, তবে এর কিছু নিরাপত্তা উদ্বেগ এবং সীমাবদ্ধতা রয়েছে, যা অ্যাপ্লিকেশন ডেভেলপারদের অবশ্যই মনে রাখতে হবে।
GET
মেথড ব্যবহার করে। এর ফলে, Authentication এবং Authorization এর জন্য কোনো নিরাপত্তা ব্যবস্থা নিয়ন্ত্রণ করা সম্ভব নয়।GET
রিকোয়েস্ট সাপোর্ট করে। POST
, PUT
, DELETE
ইত্যাদি HTTP মেথডগুলির জন্য JSONP ব্যবহার করা সম্ভব নয়।JSONP (JSON with Padding) হল একটি পদ্ধতি যা Cross-Origin Resource Sharing (CORS) এর সীমাবদ্ধতা পেরিয়ে API রিকোয়েস্টের মাধ্যমে ডেটা শেয়ার করতে ব্যবহৃত হয়। যদিও JSONP খুবই কার্যকরী, তবে এটি নিরাপত্তার জন্য কিছু গুরুতর ঝুঁকি (যেমন XSS আক্রমণ) সৃষ্টি করতে পারে। JSONP এর মাধ্যমে ডেটা শেয়ার করার সময় সুরক্ষার বিষয়গুলি মাথায় রেখে, CORS এবং OAuth এর মতো আধুনিক নিরাপত্তা ব্যবস্থা ব্যবহারের মাধ্যমে JSONP এর সীমাবদ্ধতা কমিয়ে আনা উচিত।
Read more