ধরুন আপনি একদিন কম্পিউটার নিয়ে বসে নিজ মনে ওয়েব ব্রাউজ করছেন। এমন সময় আপনার স্মার্টফোনে টুং করে একটা আওয়াজ হল। ফোন হাতে নিয়ে দেখলেন মেসেঞ্জারে একটি মেসেজ এসেছে। আপনার বন্ধু আপনাকে রোর বাংলার একটি লেখার ওয়েব এড্রেস পাঠিয়েছে। আপনি লিংকের উপর ক্লিক করা মাত্রই সেই লেখাটি আপনার স্মার্টফোনের পর্দায় ভেসে উঠল!
এটা তো একটা মামুলি ঘটনা। তাহলে এ কথাগুলো বলার কারণ কী? পাঠক, দিনে তো আমরা হরদম এই-ঐ লিংকে ক্লিক করেই থাকি। কিন্তু একবার ভেবে দেখি কি পুরো কাজটা কীভাবে হয়? কীভাবে মুহূর্তের মাঝে আপনার সামনে ভেসে উঠে একটি আস্ত ওয়েবপেইজ? এর পেছনের কৌশলটা কী? পাঠকের আগ্রহ আছে কি এর পেছনের কলাকৌশলের ব্যাপারে জানার? তাহলে সাথেই থাকুন।
যখন আপনি কোনো ওয়েব এড্রেসে ক্লিক করছেন তখন মোদ্দা ব্যাপারটা এমন হয়, আপনার স্মার্টফোনের ওয়েব ব্রাউজার ওয়েব সার্ভারের সাথে একটি সংযোগ তৈরি করে, ওয়েবপেইজটি দেখানোর জন্য অনুরোধ করে এবং সবশেষে ওয়েবপেইজটিকে গ্রহণ করে।
এবার একটু গভীরে যাওয়া যাক।
দৃশ্যের অন্তরালে!
সম্পূর্ণ প্রক্রিয়াটি ভালোভাবে বুঝতে হলে আরও কিছু প্রাথমিক ব্যাপার আমাদেরকে বুঝতে হবে। আমরা যখন একটি URL(Uniform Resource Locator) এ ক্লিক করি, তখন ব্রাউজার URL টিকে তিনটি অংশে বিভক্ত করে:
• প্রোটোকল (‘http’)
• সার্ভারের নাম (www.google.com)
• ফাইলের নাম (‘web-server.htm’)
ব্রাউজার একটি ডোমেইন নাম সার্ভারের (DNS) এর সাথে সংযোগ করে সার্ভারের নামটিকে একটি আইপি অ্যাড্রেসে এ পরিণত করে। আইপি অ্যাড্রেস ব্যবহার করে ব্রাউজারটি সার্ভার মেশিনের সাথে সংযোগ স্থাপন করে। HTTP প্রোটোকল অনুসরণ করে ব্রাউজারটি সার্ভারের কাছে ফাইলটি চেয়ে একটি GET অনুরোধ পাঠায়। তৎক্ষণাৎ সার্ভারটি সেই ওয়েবপেইজের একটি HTML TEXT আপনার ফোনের ব্রাউজারের কাছে পাঠায়। এরপর ব্রাউজারটি HTML TAG গুলোর ফরম্যাট ঠিকঠাক করে আপনার মোবাইলের স্ক্রিনে ভাসিয়ে তোলে।
মোটামুটি সংক্ষেপে পুরো প্রক্রিয়াটা এখানে বলা হলো। পাঠকদের কাছে অনেক ব্যাপারই হয়ত ধোঁয়াশা থেকে গেছে। তাই আরও ভালোভাবে বুঝতে হলে আমাদেরকে ক্লায়েন্ট, সার্ভার, IP Address, পোর্ট, প্রোটোকল- এগুলো সম্পর্কে পরিষ্কার ধারণা রাখতে হবে।
ক্লায়েন্ট এবং সার্ভার
ইন্টারনেটে সংযুক্ত সকল মেশিনকে আমরা মূলত দুটি ভাগে ভাগ করতে পারি: ক্লায়েন্ট ও সার্ভার। যে মেশিনগুলো অন্যান্য মেশিনকে সার্ভিস প্রদান করে অর্থাৎ ওয়েবপেইজ প্রদান করে সেগুলো হলো সার্ভার। অন্যদিকে যেসব মেশিন সেই সার্ভিসটি নেয় তারা হলো ক্লায়েন্ট। আপনি যখন www.google.com এর সাথে আপনার ল্যাপটপকে সংযুক্ত করছেন, তখন গুগলের একটি মেশিন আপনার অনুরোধ অনুসারে সার্ভিস প্রদান করছে। গুগলের মেশিনটি আপনাকে ওয়েবপেইজ প্রদর্শন করছে, তাই সেটা হল সার্ভার। অন্যদিকে আপনি আপনার ল্যাপটপ দিয়ে সার্ভিসটি নিচ্ছেন, তাই আপনার ল্যাপটপটি হল ইউজার মেশিন বা ক্লায়েন্ট।
আইপি অ্যাড্রেস
ইন্টারনেটে প্রতিটি মেশিনের অনন্যতা বজায় রাখার জন্য প্রত্যেকটি ডিভাইসের একটি আলাদা অ্যাড্রেস থাকে। এই অ্যাড্রেসটিই হল IP Address। IP এর সম্পূর্ণ রূপ হল Internet Protocol। এই অ্যাড্রেসটি মূলত ৩২ বিটের একটি সংখ্যা। আইপি অ্যাড্রেসের ফরম্যাট সাধারণত এরকম হয়: 216.27.61.137
প্রতিটি সার্ভারের আলাদা আইপি অ্যাড্রেস থাকে, যা সাধারণত খুব বেশি পরিবর্তিত হয় না। আবার প্রতিটি ক্লায়েন্ট ডিভাইসেরও আলাদা আইপি অ্যাড্রেস থাকে। প্রতিবার ইন্টারনেটের সাথে সংযুক্ত হওয়ার পরে ডিভাইসের ISP একটি অ্যাড্রেস ডিভাইসটিকে বরাদ্দ করে। এই ক্ষেত্রে অবশ্য প্রতিবার ইন্টারনেটে সংযুক্ত হওয়ার সময়ে ক্লায়েন্টের আইপি অ্যাড্রেস এক নাও থাকতে পারে।
ডোমেইন নাম
একটি ওয়েবপেইজে প্রবেশ করার জন্য ৩২ বিটের একটি সংখ্যা মনে রাখা বেশ কষ্টসাধ্য, তা-ই নয় কি? এই সমস্যা কাটিয়ে উঠতেই ডোমেইন নামের উদ্ভব। তাছাড়াও সার্ভারের আইপি অ্যাড্রেসের পরিবর্তন ঘটতে পারে। তাই এমন একটি ব্যবস্থা দরকার, যা স্থায়ী এবং সহজে মনে রাখা সম্ভব। যেমন, www.google.com নিঃসন্দেহে একটি ৩২ বিটের আইপি এড্রেসের তুলনায় সহজে মনে রাখা সম্ভব। এখানে google.com হলো ডোমেইন নাম।
ডোমেইন নাম সার্ভার (DNS)
আপনি যখন আপনার ব্রাউজারের অ্যাড্রেস বারে www.google.com টাইপ করছেন, তখন কিন্তু এই অ্যাড্রেস দিয়েই সার্ভারের সাথে আপনার ব্রাউজার সংযোগ স্থাপন করতে পারবে না। ডিভাইসগুলোর একটি আলাদা ৩২ বিটের আইপি আছে। কিন্তু আপনার ইনপুট করা এড্রেসটি ৩২ বিটের ফরম্যাটে নেই। তাহলে ব্রাউজার কী করবে তখন?
এই ক্ষেত্রে ব্রাউজার যে কাজটি করে তা হল, সে একটি ডোমেইন নাম সার্ভারের কাছে আপনার দেওয়া অ্যাড্রেসটি পাঠায় এবং সেই সার্ভার www.google.com এর জন্য ব্যবহৃত সেই আইপি অ্যাড্রেসটি ব্রাউজারকে ফেরত পাঠায়।
ডোমেইন নাম সার্ভারকে অনেকটা টেলিফোন ডিরেক্টরির সাথে তুলনা করা যেতে পারে। টেলিফোন ডিরেক্টরিতে যেমন প্রত্যেকের নামের পাশে টেলিফোন নাম্বার সংরক্ষিত থাকে, একইভাবে ডোমেইন নাম সার্ভারের কাছে প্রতিটি ডোমেইন নামের আইপি অ্যাড্রেস সংরক্ষিত থাকে।
পোর্ট
কম্পিউটার ও ইন্টারনেটের জনপ্রিয়তা প্রতিদিনই বাড়ছে। তাই প্রতিটি সার্ভিসকে আলাদাভাবে চিনতে পারার জন্যই পোর্টের ধারণার উৎপত্তি। আপনার ক্লায়েন্ট মেশিন কোনো সার্ভারে একটি অনুরোধ পাঠায় যা ফাইল ট্রান্সফার প্রোটোকল (FTP) সার্ভারে রয়েছে, তখন আপনার অনুরোধটি পাঠানোর জন্য আপনার মেশিনের ট্রান্সমিশন কন্ট্রোল প্রোটোকল (TCP) সফটওয়্যার লেয়ার পোর্ট নাম্বার 21 কে চিহ্নিত করে। সার্ভারের TCP লেয়ার পোর্ট নাম্বার 21 দেখলে অনুরোধটি তার FTP প্রোগ্রামে পাঠায়। পোর্ট নাম্বারের সীমা 0 থেকে 65535 পর্যন্ত হতে পারে। তবে 0-1023 সবথেকে জনপ্রিয়। কারণ, সবথেকে জনপ্রিয় সার্ভিসগুলোই এই সীমার মধ্যে আছে। যেমন FTP এর জন্য 21, HTTP এর জন্য 80, HTTPS এর জন্য 443, SSH এর জন্য 22।
এবারে সবকিছু আবার একসাথে মিলিয়ে নেয়া যাক। আপনি যখন ব্রাউজারে https://www.google.com/file-server.htm টাইপ করছেন তখন এই সম্পূর্ণ URLটি মোট তিনটি অংশে বিভক্ত হল।
• প্রোটোকল (https)
• সার্ভারের নাম (www.google.com)
• ফাইলের নাম(file-server.htm)
ব্রাউজার একটি ডোমেইন নাম সার্ভারের সাথে সংযোগ করে www.google.com কে একটি আইপি অ্যাড্রেসে পরিণত করে নেয় এবং এই আইপি দিয়েই গুগলের সার্ভার মেশিনের সাথে সংযোগ করে। ব্রাউজারটি পোর্ট 80 ব্যবহার করে ওয়েব সার্ভারের সাথে সংযোগ করে। https প্রোটোকল অনুসরণ করে ব্রাউজারটি সার্ভারকে https://www.google.com/file-server.htm ফাইলটি চেয়ে একটি GET অনুরোধ পাঠায়। এরপরের কাজটি করে গুগলের সার্ভার মেশিন। মেশিনটি অনুরোধকৃত ফাইলের HTML Text ব্রাউজারকে পাঠায়। পরবর্তীতে ব্রাউজারটি HTML ট্যাগগুলো ঠিকঠাক ফরম্যাট করে সম্পূর্ণ ওয়েবপেইজটি আপনাকে দেখায়।
ওয়েবপেজের নিরাপত্তা
উপরের প্রক্রিয়া জানার পর আপনার হয়ত মনে হবে ওয়েব সার্ভার খুবই সাধারণ একটি সফটওয়্যার। আপনার ব্রাউজার একটি ফাইলের অনুরোধ পাঠিয়ে দেওয়ার সাথে সাথেই সার্ভার সেই ফাইলের HTML Tags পাঠিয়ে দেয়। সহজ, তা-ই না? অনেক ক্ষেত্রেই সহজ, আবার কিছু ক্ষেত্রে ভিন্নতাও আছে। অধিকাংশ সার্ভারই তাদের প্রক্রিয়ায় কিছু নিরাপত্তা স্তর যোগ করে রাখে। আপনি হয়ত দেখে থাকবেন কিছু কিছু সার্ভারে প্রবেশ করতে গেলে ইউজার নাম ও পাসওয়ার্ড দিতে হয়। এর থেকেও বেশি নিরাপত্তা বিশিষ্ট রক্ষার জন্য কিছু কিছু সার্ভার এমন নিরাপত্তা স্তর যোগ করে যাতে সার্ভার এবং ব্রাউজারের সংযোগ এনক্রিপ্টেড থাকে। এরকম নিরাপত্তা যোগ করা হয় অনলাইন ব্যাংকিং সহ অন্যান্য অনলাইন পেমেন্ট সিস্টেমের ক্ষেত্রে।
ফিচার ইমেজ- indigothemes.com