HTTP রিকোয়েস্ট হলো একধরণের ডাটা প্যাকেট যা একটি কম্পিউটার থেকে অন্য কম্পিউটারে যোগাযোগের জন্য ব্যবহার করা হয়। অন্য ভাবে বললে, HTTP রিকোয়েস্ট বাইনারি ডেটার একটি প্যাকেট যা ক্লায়েন্টের মাধ্যমে সার্ভারে পাঠানো হয়। HTTP (Hypertext Transfer Protocol) একটি অ্যাপ্লিকেশন লেভেল প্রটোকল যা TCP লেয়ার এবং নির্দিষ্ট কিছু অ্যাপ্লিকেশন দ্বারা একে অপরের সাথে সংযোগ স্থাপন করে। এই ক্ষেত্রে অ্যাপ্লিকেশনগুলো হলো ওয়েব ব্রাউজার এবং ওয়েব সার্ভার।
HTTP একটি কানেকশনলেস টেক্সট-ভিত্তিক প্রটোকল। ওয়েব পেজ এবং এর মধ্যে থাকা সকল ডেটা সংগ্রহ করার জন্য মূলত HTTP রিকোয়েস্ট ব্যবহার হয়ে থাকে। আবার রিকোয়েস্টটি সম্পন্ন হয়ে গেলে ক্লায়েন্ট এবং সার্ভারের মধ্যে সংযোগ বিচ্ছিন্ন করতে সক্ষম। সার্ভারের প্রত্যেকটি নতুন রিকোয়েস্টের জন্য আলাদা আলাদা সংযোগের প্রয়োজন পরে। অতএব বেশিরভাগ প্রটোকলই সংযোগ ভিত্তিক তাই HTTP রিকোয়েস্টের আগেও সার্ভারের সাথে সংযোগের দরকার হয়।
কোনো ওয়েবসাইটে ফর্ম জমা দেওয়ার সময়, একটি রিকোয়েষ্ট করা হয়। আপনি যখনই কোনও নতুন পেজে যান, তখনও একটি রিকোয়েষ্ট করেন। এই রিকোয়েষ্টগুলি হেডারে রূপান্তরিত হয় এবং সার্ভারে পাঠায়। তারপর আপনি যে পেজটি চেয়েছিলেন তা পেয়ে যান। বিশেষত আপনি যদি API এর সাথে কাজ করে থাকেন, তাহলে আপনার কোডে HTTP রিকোয়েষ্ট দেখে থাকবেন।
ঠিক এই জাতীয় HTTP রিকোয়েস্টগুলি কী, এটি কেন ব্যবহৃত হয় এবং কোন কোন ক্ষেত্রে এটি প্রযোজ্য তার কিছু সাধারণ বিষয় নিয়ে আলোচনা করা হলো এই আর্টিকেলটিতে:
POST
এটি সর্বাধিক ব্যবহৃত HTTP রিকোয়েষ্ট গুলোর মধ্যে একটি যা ব্যবহারকারীর ইনপুট গ্রহণ করে এবং সার্ভারে ডেটা পাঠিয়ে দেয়। যখন আপনি কোন নতুন অ্যাকাউন্ট তৈরি করেন, তাহলে আপনি একটি পোস্টে রিকোয়েষ্ট করতে যাচ্ছেন। ই-কমার্স ওয়েবসাইটে POST পদ্ধতিটি ব্যবহার করা হয়ে থাকে। অর্থাৎ কোনো সাইটে পন্য বেচা কেনা হলে সেখানে POST রিকোয়েষ্ট ব্যবহার করা হয়।
ফ্রন্ট-এন্ড থেকে ব্যাক-এন্ডে তথ্য সরবরাহে সাধারণত POST রিকোয়েষ্ট পদ্ধতিতে করা হয়। এবং এটি বেশিরভাগই HTML ফর্মগুলির সাথে ব্যবহৃত হয়। তবে API এট্রিবিউট ফর্মেও এর অনেক ব্যবহার রয়েছে । এর জন্য আপনাকে POST রিকোয়েষ্ট করার সময় অনেক সাবধানতা অবলম্বন করতে হবে। তবে POST রিকোয়েষ্ট একাধিকবার কল করা ঠিক নয়, কেননা এর জন্য সার্ভারে একাধিক বার আপডেট করা প্রয়োজন পরে।
GET
GET রিকোয়েষ্ট আরেকটি HTTP রিকোয়েষ্ট পদ্ধতি যা একটি নির্দিষ্ট সার্ভার থেকে ডেটা সংগ্রহ করতে সহায়তা করে। এটি একটি ডেটাবেস, ব্লব স্টোরেজ বা ডেটা রিসোর্সের মতো কাজ করে। এর মাধ্যমে অথরিটির কোনো শর্তের বা পার্মিশনের ভিত্তিতে আপনি পেজ লোড করতে পারবেন।
এই পদ্ধতিটি মূলত ডেটা রিকোয়েষ্ট করতে, পরিবর্তন বা নতুন ডেটা যুক্ত করার জন্য ব্যবহৃত হয়। ব্যবহারকারীকে কোনো তথ্য দেখাতে এই পদ্ধতিটি ব্যবহার করতে পারেন। কিন্তু এর জন্য আপনাকে অনেক সতর্ক থাকতে হবে। NID নাম্বর, ফোন নাম্বার বা ব্যাংক অ্যাকাউন্টের তথ্যের মতো সংবেদনশীল তথ্য এই পদ্ধতিতে ব্যবহার করা যাবে না। কেননা এইসকল তথ্য রি-রাইট করে কেউ তার এক্সেস নিয়ে নিতে পারে এবং এতে আপনি অনেক বিপদে পরতে পারেন।
PUT
PUT রিকোয়েষ্ট মূলত POST রিকোয়েষ্টের মতই কাজ করে। এটি একটি নতুন রিসোর্স তৈরি করতে বা আপডেট করতে সহায়তা করে। মূল পার্থক্যটি দেখা যায় যখন PUT রিকোয়েষ্ট কল করা হয়। POST রিকোয়েষ্টের পরিবর্তে, যখন PUT রিকোয়েষ্ট একাধিকবার কল করা হয় তখন ডেটা রিসোর্সে প্রতিবার একই প্রভাব ফেলে।
আপনি যদি একাধিকবার কোনো POST রিকোয়েষ্টকে কল করেন তবে ডুপ্লিকেট ডেটা বা ভুল ডেটা দেয়ার সম্ভাবনা রয়েছে। এই সমস্যা সমাধানের জন্যই মূলত PUT রিকোয়েষ্ট ব্যবহার করা হয়ে থাকে। যে ডেটা আপনি তৈরি করতে চাচ্ছেন, তার মধ্যে যদি কোন রিসোর্স বা ব্লব স্টোরেজ ইতিমধ্যে হয়ে যায়, তবে কোড আপডেট করতে হয়।
HEAD
HEAD রিকোয়েষ্ট মূলত GET রিকোয়েষ্টের অনুরূপ। যতক্ষন পর্যন্ত রিকোয়েষ্টের রেজাল্ট দেখতে না পান তার আগ পর্যন্ত HEAD রিকোয়েষ্ট চলতে থাকে। আপনার যে সকল ডেটার এক্সেস থাকবে তা HEADER হিসেবে আপনি ফিরে পাবেন। GET রিকোয়েষ্ট করতে এটি ব্যবহৃত হয়।
কোনো বড় ফাইল ডাউনলোড করতে HEAD রিকোয়েষ্টের সর্বাধিক ব্যবহার হয়। ইউজারের ইন্টারেস্টের ভিত্তিতে GET রিকোয়েষ্টের কার্যক্রম চলতে থাকে এবং তার প্রয়োজনীয় ফাইল ডাউনলোড হতে থাকে। এতে ব্যবহারকারীর কিছু ব্যান্ডউইথ বাচে, যদি ব্যবহারকারী ফাইলটি ডাউনলোড না করে।
OPTIONS
আপনি যখন এই রিকোয়েষ্টটি চালু করবেন তখন ওয়েব সার্ভার সাপোর্ট করবে এমন অনেক গুলো HTTP রিকোয়েষ্টের তালিকা পাবেন। এটি POSTএবং PUT রিকোয়েষ্টের সহায়ক হতে পারে। যদি API নিয়ে কাজ করে থাকেন এবং কোন পদ্ধতিগুলি আপনি ব্যবহার করবেন তা জানা থাকে তবে এটি আপনার জন্য সহায়ক হবে। আপনার সার্ভার থেকে অনুমোদিত HTTP রিকোয়েষ্টের তালিকা হয়ে গেলে, আপনার কোড সাবমিট করতে পারবেন।
ওয়েব ডেভেলপমেন্টে HTTP রিকোয়েষ্ট আমরা সব সময়ই ব্যবহার করে থাকি কিন্তু এটি সম্পর্কে অনেকের সঠিক ধারণা নেই। আমরা জানি কিভাবে এটি ব্যবহার করতে হয় কিন্তু পরিপূর্ন জ্ঞান থাকলে এটি ব্যবহার আরো সহজ ও ভালো রেজাল্ট দিবে। আমি মনে করি আমার পক্ষে সবচেয়ে কঠিন পার্থক্যটি ছিল POST এবং PUT রিকোয়েষ্টের মধ্যে পার্থক্য নির্নয় করা।
আরো একটি রিকোয়েষ্ট পদ্ধতি রয়েছে যা আপনি ব্যবহার করে থাকেন কিন্তু আপনি কি এখানে তা দেখেছেন? অনেকেই DELETE রিকোয়েষ্ট পদ্ধতিটি ব্যবহার করে তবে ট্র্যাক বা সংযোগ পদ্ধতিগুলির জন্য এটির বেশি কেস স্ট্যডি দেখা যায় না। এটি নিয়ে আপনি যদি আপনার অভিজ্ঞতা শেয়ার করতে চান তবে নিচের কমেন্ট বক্সে আমাদের লিখে জানাতে পারেন।