কুকিজ হলো এক तरफ সুস্বাদু স্ন্যাক্স আবার আধুনিক ওয়েবসাইটের অপরিহার্য একটি অংশ।
কুকিজ আপনাকে ওয়েব ব্রাউজারে ব্যবহারকারীর তথ্য সংরক্ষণ করতে দেয়। সাধারণত কুকিজ প্রমাণীকরণ সেশন जैसी তথ্য সংরক্ষণ করে যাতে ব্রাউজার মনে রাখতে পারে যে আপনি একটি ওয়েব পেজে লগ ইন করেছেন।
এই গাইডে আমরা কুকিজ কেন বিদ্যমান, কুকিজের প্রকারভেদ এবং জাভাস্ক্রিপ্টে কুকিজ কীভাবে ব্যবহার করবেন সে সম্পর্কে আলোচনা করব। চলুন শুরু করি!
ব্রাউজার কুকিজ কী?
কুকিজ হলো টেক্সট স্ট্রিং যা ব্যবহারকারীর তথ্য তাদের ব্রাউজারে সংরক্ষণ করে। ধারণাটি নেটস্কেপ কর্তৃক ప్రবর্তিত হয়েছিল, যারা ১৯৯০ के দশকে বিশ্বের সবচেয়ে জনপ্রিয় ব্রাউজারগুলির একটি তৈরি کردند। নেটস্কেপ কুকিজ তৈরি করেছিল যেন তারা ট্র্যাক করতে পারে কোনো ব্যবহারকারী তাদের সাইটে আগে এসেছে কিনা। যদি এসে থাকেন, তাহলে সম্ভবত ব্যবহারকারী নেটস্কেপ সম্পর্কে কিছু জানতেন।
কুকিজের অন্তত একটি নাম এবং একটি মান ফিল্ড থাকতে হবে। নাম ফিল্ডটি মান ফিল্ডের বিষয়বস্তু চিহ্নিত করতে ব্যবহৃত হয়। আপনার অ্যাপ্লিকেশনে কুকিজ কীভাবে ব্যবহার করা হচ্ছে তার উপর নির্ভর করে একটি কুকিতে ফাইল পাথ এবং এটি কবে এক্সপায়ার হবে সেরকম অতিরিক্ত অ্যাট্রিবিউট থাকতে পারে।
এখানে একটি কুকির উদাহরণ দেওয়া হলো:
নাম: প্রমাণীকরণ মান: AUTHENTICATION_KEY ডোমেইন: careerkarma.com
কুকিজ কী-ভ্যালু জোড়ায় সংরক্ষিত হয়। এই কুকিটি দেখলে আপনি নিচের আউটপুট পাবেন:
প্রমাণীকরণ=AUTHENTICATION_KEY
এই কুকিটি আপনার ব্রাউজারে AUTHENTICATION_KEY মানটি সংরক্ষণ করবে। প্রতিবার careerkarma.com ডোমেইনটি এক্সেস করলে সেই কুকিটি সাইটে উপলব্ধ হবে।
কোনো সাইটের জন্য আপনি কতগুলো কুকি সেট করতে পারবেন তার কোনো সীমা নেই, তবে বেশিরভাগ অ্যাপ্লিকেশন কেবল কয়েকটি কুকি সেট করে থাকতে বা কখনো কখনো একটিও সেট করতে হয় না। প্রায়শই কুকিজ ব্যবহারকারীর সেশন ট্র্যাক রাখতে ব্যবহৃত হয়।
ব্রাউজার কুকিজ পুনরুদ্ধার করা
জাভাস্ক্রিপ্টের একটি অবজেক্ট আছে যাকে document.cookie বলা হয়, যা একটি সাইটের জন্য উপলব্ধ সমস্ত কুকির তথ্য সংরক্ষণ করে। কুকি সেট, আপডেট এবং ডিলিট করার জন্য এই অবজেক্টটি ম্যানিপুলেট করতে হয়। কুকিজ পুনরুদ্ধার করতে শুধু এই অবজেক্টটি কল করলেই হবে:
console.log(document.cookie);
এই কোড ব্রাউজারে সেট করা সমস্ত কুকির তালিকা রিটার্ন করবে। কাস্টম ফাংশন না লিখলে এই তালিকা থেকে কোনো নির্দিষ্ট কুকি আলাদা করে বের করা সম্ভব নয়।
ব্রাউজার কুকি সেট করার পদ্ধতি
ব্রাউজার কুকি কীভাবে সেট করব? একটা কথা আপনাকে আগেই জানিয়ে রাখি: এটি আপনার নিজের কুকি বানানোর চেয়ে অধিক সহজ।
মান লেইए আমরা একজন ব্যবহারকারীর ইমেইল একটি কুকিতে সংরক্ষণ করতে চাই। আমরা নিচের জাভাস্ক্রিপ্ট কোড দিয়ে এটি করতে পারি:
document.cookie = "email=user@email.com"; console.log(document.cookie);
এই কোড "email" নামে একটি কুকি তৈরি করে যার মান "user@email.com"। আমাদের console.log() স্টেটমেন্ট নিচের আউটপুট দেবে:
email=user@email.com;
আপনি একটি পাথও নির্দিষ্ট করতে পারেন যেখানে কুকিটি উপলব্ধ থাকবে:
document.cookie = "email=user@email.com; path=/dashboard";
এই কোড "email" কুকিটি "/dashboard" দিয়ে শুরু হওয়া সব পথে উপলব্ধ করাবে।
কুকির এক্সপায়ারি তারিখ
ডিফল্টভাবে ব্রাউজার বন্ধ হলে কুকিজ ডিলিট হয়ে যায়। কুকি সেট করার সময় আপনি ঐচ্ছিকভাবে একটি এক্সপায়ারি তারিখ যোগ করতে পারেন যা এই সেটিং ওভাররাইড করবে:
document.cookie = "email=user@email.com; expires=Wed, 24 Jun 2019 12:00:00 UTC";
এটি ২৪ জুন, ২০১৯-এর সকালে এক্সপায়ার হওয়া একটি কুকি তৈরি করবে। আপনার এক্সপায়ারি তারিখ UTC টাইমে নির্দিষ্ট করা উচিত।
এক্সপায়ারেশন তারিখ সেট করার একটি সাধারণ পদ্ধতি হলো জাভাস্ক্রিপ্ট Date অবজেক্ট ব্যবহার করা, যা UTC টাইমস্ট্যাম্প রিটার্ন করে। ৩০ জুন, ২০২০-এ এক্সপায়ার হওয়া একটি কুকির জন্য এই কোডটি ব্যবহার করা যেতে পারে:
const expiryDate = new Date(2020, 6, 30); document.cookie = "email=user@email.com; expires=" + expiryDate + ";";
document.cookie অবজেক্ট কুকির সর্বোচ্চ आयু বা Max-Age সেট করা সাপোর্ট করে, যা বলে কুকিটি কতক্ষণ পর্যন্ত উপলব্ধ থাকবে। এটি সব ব্রাউজার সাপোর্ট করে না, কিন্তু এটি সহজে কুকি তৈরি করতে দেয় যা ব্যবহারকারী কুকি তৈরি করার সময় থেকে গড়ে এক্সপায়ার হয়:
const expiryDate = 24 * 60 * 60 * 2; document.cookie = "email=user@email.com; max-age=" + expiryDate + ";";
এটি দুই দিনের পর এক্সপায়ার হওয়া একটি কুকি তৈরি করবে।
কুকিজ আপডেট ও ডিলিট করা
কুকিজ আপডেট বা ডিলিট করার জন্য কোনো আলাদা ফাংশন নেই। পরিবর্তে আপনাকে "document.cookie" অবজেক্টে পরিবর্তন আনা पड़ता है।
আপনি কুকি তৈরি করার মতোই এটি আপডেট করতে পারেন:
document.cookie = "email=user@email.app;"
এটি "email" এর মান "user@email.com" থেকে "user@email.app"-এ পরিবর্তন করবে।
কুকি ডিলিট করা একই পদ্ধতিতে করা হয়। কুকি তৈরি বা আপডেট করার সিন্ট্যাক্স ব্যবহার করে কুকির মানের খালি রেখে দিতে হবে:
document.cookie = "email=; expires=Wed, 24 Jun 2019 12:00:00 UTC; path=/;"
সঠিক কুকি ডিলিট হচ্ছে কিনা নিশ্চিত করার জন্য পাথ নির্দিষ্ট করা উচিত।
কুকিজের প্রকারভেদ
রাসবেরি, চকলেট চিপ, ফাজ। না, ব্রাউজারের কুকিজ এগুলো নয়! ব্রাউজারে মূলত তিনটি ধরনের কুকি থাকে: সেশন, থার্ড-পার্টি এবং পারসিস্টেন্ট।
সেশন কুকিজ হলো ব্রাউজার বন্ধ না হওয়া পর্যন্ত বিদ্যমান থাকা কুকিজ। এগুলো এক্সপায়ারি তারিখ ছাড়া সেট করা কুকিজ, যেমন আমাদের প্রথম উদাহরণটিতে ছিল। মনে রাখবেন কিছু ডেভেলপার "সেশন কুকি" শব্দটি ব্যবহারকারী প্রমাণীকরণকারী যেকোনো কুকির জন্য ব্যবহার করেন, কিন্তু প্রমাণীকরণের জন্য সেশন কুকিই একমাত্র কুকি নয়।
পারসিস্টেন্ট কুকিজ হলো ব্রাউজার বন্ধ হওয়ার পরেও বিদ্যমান থাকা কুকিজ। এগুলো একটি নির্দিষ্ট এক্সপায়ারি তারিখের সাথে থাকে।
থার্ড-পার্টি কুকিজ হলো অন্যান্য ওয়েবসাইট দ্বারা তৈরি করা কুকিজ। এর একটি উদাহরণ হলো গুগল অ্যানালিটিক্স কুকিজ। আপনার সাইটে গুগল অ্যানালিটিক্স ইন্সটল করলে এক্সটেনশনটি ব্যবহারকারীদের ট্র্যাক রাখতে কুকি সেট করতে পারবে।
উপসংহার
কুকিজ ব্রাউজারে ব্যবহারকারীর তথ্য সংরক্ষণের একটি সুবিধাজনক উপায়। এগুলো প্রায়শই ব্যবহার করা হয় কোনো ব্যবহারকারী আগে কোনো সাইটে এসেছে কিনা ট্র্যাক করতে এবং প্রমাণীকরণ কুকিজ সংরক্ষণ করতে।
কুকিজের তিনটি প্রধান প্রকার: সেশন, পারসিস্টেন্ট এবং থার্ড-পার্টি। আপনার নিজের অ্যাপ্লিকেশনের জন্য আপনি মূলত সেশন এবং পারসিস্টেন্ট কুকিজের সাথে কাজ করবেন।