ইন্টার্ভিউয়ের প্রশ্ন : HTTP রিকুয়েস্ট মেথডগুলো ব্যাখা করুন।

প্রথমেই জানি চলুন HTTP এর মানে কি? HTTP মানে হল Hyper text transfer protocol । তো এখন প্রশ্ন আসতে পারে Hyper text কি?

Hyper text কি?

হাইপার টেক্সট হল কম্পিউটারের কোন ডিজিটাল টেক্সট যা নিজে অন্য কোন ওয়েব সাইটের লিংক নিজে বহন করে। নিজের HTML কোডটি খেয়াল করুন।

< a href="https://www.google.com">Google</a>

এইটি একটি ফাইলে লিখে (.html) এক্সটেনশন দিয়ে সেভ করে ব্রাউজার দিয়ে ওপেন করলে ব্রাউজারে আসবে

Google

এই লিংকটি।এখানে আমরা সোজাভাষায় বুঝতে পারি যে “Google” টেক্সটটি হল একটি ডিজিটাল টেক্সট যা অন্য একটি সাইটের লিংক নিজে বহন করে,তাই এটি একটি হাইপার টেক্সট। এবার জানি চলুন protocol কি?

Protocol কি?

প্রোটোকল হল ইন্টারনেটের মাধ্যমে তথ্য আদান প্রদান করার কিছু নিয়ন নীতি।

HTTP মানে কি?

এখন HTTP এর অর্থ দাড়ালো ইন্টারনেটের মাধ্যমে Hyper text আদার প্রদান করার জন্য যে বিশেষ নিয়মনীতি ব্যবহার করা হয় তাকে বলে HTTP ।এই আদান প্রদানের মাধ্যমে সার্ভার এবং ক্লায়েন্ট (ব্রাউজার ) নিজেদের ভিতর যোগাযোগ করে।

HTTP এর মাধ্যমে তথ্য আদান প্রদানে অনেকগুলো রিকুয়েস্ট মেথড রয়েছে যা ইন্টার্ভিউ বোর্ডে অনেক সময়ই প্রশ্ন করা হয়।প্রথমেই বলে রাখা ভাল HTTP এর মাধ্যমে Request – Response এর মাধ্যমে সার্ভার ক্লায়েন্ট যোগাযোগ করে।মানে হল ধরুন ক্লায়েন্ট সার্ভারকে কিছু পেতে একটি রিকুয়েস্ট পাঠালো সার্ভার তখন ক্লায়েন্টের রিকুয়েস্টে সাড়া দিয়ে রেসপন্স করে ক্লায়েন্টকে কিছু তথ্য দিয়ে থাকে।নিচে চলুন রিকুয়েস্ট মেথডগুলো নিয়ে আলোচনা শুরু করি।

GET – যদি ক্লায়েন্ট বা ইউজার সার্ভার থেকে কোন নির্দিষ্ট তথ্য চায় তখন তাকে আমরা বলবো GET request । এই রিকুয়েস্টের মাধ্যমে ক্লায়েন্ট সার্ভারের কাছে থেকে শুধুমাত্র তথ্য পেয়ে থাকে,এটির মাধ্যমে সার্ভারে কোন তথ্যের পরিবর্তন হয় না।

POST – যদি ক্লায়েন্ট বা ইউজার সার্ভারে কোন তথ্য পাঠায় যা সার্ভারে নতুন কোন তথ্য তৈরী করে তাহলে তা হবে পোস্ট রিকুয়েস্ট।একটি গুরুত্বপূর্ণ জিনিস জানতে হবে।তা হল গেট দিয়েও সার্ভারে ডাটা পাঠানো সম্ভব হয় কিন্তু এইটি নিরাপদ না ।যেমন আপনি যদি গেট গিয়ে সার্ভারে পাসওয়ার্ড পাঠাতে চান তাহলে কিন্তু URL এ আপনার পাসওয়ার্ডটি দেখাবে যা খুবই অনিরাপদ।এরকম কেসে আমরা পোস্ট ব্যবহার করে থাকি।

PUT – put এবং post প্রায় একই কিন্তু মনে করুন পোস্ট রিকুয়েস্টের মাধ্যমে আমি যদি অনেকগুলো “একই ধরনের” ফাইল সার্ভারে পাঠাই তাহলে অনেকগুলো ফাইল সার্ভারে হয়ে তৈরী হয়ে যাবে কিন্তু আমি যদি চাই এমনটা না হোক তাহলে put রিকুয়েস্ট দিয়ে কাজ করতে পারি।পুট রিকুয়েস্টের মাধ্যমে আমি যদি কোন ফাইল সার্ভারে পাঠাই তাহলে প্রথমে সে দেখবে যে সার্ভারে ফাইলটি আগে থেকেই আছে নাকি।যদি থাকে তাহলে তা ফাইলটি রিপ্লেস করার মাধ্যমে তা আপডেট হয়ে যাবে আর যদি না থাকে তাহলে ফাইলটি সার্ভারে তৈরী হয়ে যাবে।সোজা বাংলায় সার্ভারে কোন কিছু আপডেট হলে তাকে আমর বলব পুট রিকুয়েস্টের মাধ্যমে হয়েছে।Put method টি হল idempotent আর Post method টি হল non-idempotent । idempotent মানে হচ্ছে যে কাজ বারবার করলেও যার ফলাফল একই থাকে।

DELETE – সার্ভারে কোন ফাইল বা তথ্য ডিলেট করতে এটি ব্যবহার করা হয়।

PATCH – একটি তথ্যের আংশিক মডিফিকেশনের জন্য এই রিকুয়েস্টের দরকার হয়।Put আমরা দেখেছি যে সম্পূর্ণ তথ্যটিকে রিপ্লেস করে দিয়ে সম্পূর্ণ মডিফিকেশন করে দেয়।

HEAD– এটিও মুলত GET এর মতই কাজ করে কিন্তু এটির রেসপন্সে কোন রেসপন্স বডি থাকে না,শুধুমাত্র হেডার থাকে। একটি উদাহরণ দেখা যায়।আপনি ধরেন একটি রিকুয়েস্ট করে সার্ভারে যতজন ইউজার আছে সবাইকে দেখতে চাইছেন।তাহলে আপনাকে গেট রিকুয়েস্ট করতে হবে। আর যদি আপনি চান সার্ভারে যতজন ইউজার আছে তা আপনি দেখতে চান না,শুধু চান সার্ভারে ইউজার আছে নাকি তা দেখতে তাহলে আপনাকে হেড রিকুয়েস্ট করতে হবে। এই রিকুয়েস্ট ব্যবহার করা হয় মুলত তখন যখন আপনার মনে হবে তেমন কোন অযথা ভারী রিকুয়েস্ট দরকার নেই কারন হেড রিকুয়েস্টটি অনেক হালকা বা
লাইটওয়েট হয়। কারন আমরা জানি এর কোন রেসপন্স বডি নাই।এই রিকুয়েস্ট ব্যবহারের আরেকটি কারন হল যখন আপনি কোন বড় ফাইল ডাউনলোড করতে চান তখন চেক করে দেখা যে আসলেই গেট রিকুয়েস্ট মেথডটি কাজ করছে কিনা।

CONNECT – এটি ব্যবহার করা হয় সার্ভার এবং ক্লায়েন্টের মধ্যে একটি নেটওয়ার্ক কানেকশন তৈরী করার জন্য।

OPTIONS– এটি দ্বারা আপনি সার্ভারের যত ধরনের রিকুয়েস্ট করতে পারবেন তা দেখানো হয়।যেমন ধরেন আপনি রিকুয়েস্ট করলেন OPTIONS http://example.org মানে http://example.org এই সার্ভারের কাছে জানতে চাইলেন সে কি কি HTTP request method সাপোর্ট করে তখন সে রেসপন্স করল যে Allow: OPTIONS, GET, HEAD, POST মানে সে অপশন,গেট,হেড,পোস্ট এই রিকুয়েস্ট মেথডগুলো সাপোর্ট করে।

TRACE – এটি মুলত প্রজেক্ট ডেভেলপিং এর সময় ডিবাগের উদ্দেশ্যে ব্যবহার করা হয়।এটির মাধ্যমে কোন রিকুয়েস্ট করা হলে রেসপন্সে সার্ভার বা রিকুয়েস্ট রিলেটেড অনেক তথ্য এসে হাজির হয়।

HTTP রিকুয়েস্টে মুলত থাকে দুইটি অংশ।

Request Header: প্রতিটি রিকুয়েস্টে একটি হেডার সেকশন থাকে যা রিকুয়েস্টের জন্য কিছু অতিরিক্ত তথ্য বা মেটা ডাটা সার্ভারে নিয়ে যায় রিকুয়েস্টের সাথে।হেডারগুলো মুলত ব্রাউজারের কিছু বিবরণ হয়ে থাকে।মুল কথা এখানে এপ্লিকেশনের (হতে পারে কোন ব্রাউজার বা মোবাইল এপ যা আমার ইউজার ইউজ করছে) সাথে সম্পর্কিত কোন ডাটা দিতে হয়।

Request Body: সার্ভারে রিকুয়েস্টের সাথে যে তথ্য যায় তা মুলত বডি অংশেই থাকে।মানে আপনি রিকুয়েস্টের সাথে যেই ডাটা সার্ভারে প্রেরণ করতে চান তা থাকবে এই রিকুয়েস্ট বডি অংশে।

রেফারেন্স-

লিংক ১ ,

লিংক২ ,

লিংক৩,

লিংক৪।

ফেসবুক এ শেয়ার করুন

Leave a Reply

Your email address will not be published. Required fields are marked *