এইচটিটিপি গেট(GET) এবং পোস্ট(POST) মেথড
HTTP হচ্ছে ইন্টারনেটে তথ্য আদান প্রদানের একটি জনপ্রিয় ও বহুল প্রচলিত পদ্ধতি। এর দুইটি বহুল ব্যবহৃত মেথড হলোঃ- get এবং post ।
এইচটিটিপি কি?
হাইপারটেক্সট টান্সফার প্রোটোকল(HTTP) সার্ভারের সাথে ক্লায়েন্টের যোগাযোগ করার জন্য ডিজাইন করা হয়েছে। HTTP প্রোটোকল হচ্ছে ক্লায়েন্ট এবং সার্ভারের মধ্যে রিকুয়েস্ট এবং রেসপন্স, যেখানে ওয়েব ব্রাউজার, রোবোট এবং সার্চ ইঞ্জিন ইত্যাদি HTTP ক্লায়েন্টের মত কাজ করে এবং ওয়েব সার্ভার অর্থাৎ যেখানে আপনার ওয়েব সাইট কে হোস্ট করা হয় তা সার্ভার হিসাবে কাজ করে।
Web client -->|<-- Web Server <--> Server Side Script <--> Database
যেমনঃ একজন ক্লায়েন্ট(ব্রাউজার) সার্ভারে একটি রিকুয়েস্ট সাবমিট করলে, সার্ভার ক্লায়েন্টের রিকুয়েস্টের উপর ভিত্তি করে রেসপন্স করে।
দুইটি এইচটিটিপি(HTTP) রিকুয়েস্ট মেথডঃ গেট(GET) এবং পোস্ট(POST)
ক্লায়েন্ট এবং সার্ভারের মধ্যে রিকুয়েস্ট এবং রেসপন্স আদান প্রদানের জন্য বহুল ব্যবহৃত দুটি মেথড হলোঃ গেট(GET) এবং পোস্ট(POST)।
- GET - নির্দিষ্ট রিসোর্স থেকে ডাটা রিকুয়েস্ট পাঠায়।
- POST - নির্দিষ্ট রিসোর্সে প্রক্রিয়ার মাধ্যমে ডাটা সাবমিট করে।
গেট(GET) মেথড
একটি get রিকুয়েস্টে কুয়েরিকৃত স্ট্রিং কে নাম এবং ভ্যালুর জোড়া আকারে URL এর মাধ্যমে পাঠানো হয়ঃ
.../server.php?name=value
গেট(get) রিকুয়েস্টের আরো কিছু তথ্যঃ
- গেট(get) রিকুয়েস্টে তথ্য ব্রাউজারের URL প্রদর্শিত হয়।
- গেট(get) রিকুয়েস্টে তথ্য ব্রাউজার ক্যাচ(cached) করতে পারে।
- গেট(get) রিকুয়েস্টে তথ্য ব্রাউজারের হিস্টোরিতে সংরক্ষিত থাকে।
- গেট(get) রিকুয়েস্টে তথ্য ব্রাউজারে বুকমার্ক করতে পারে।
- সেন্সিটিভ তথ্য পাঠানোর ক্ষেত্রে গেট(get) রিকুয়েস্ট কখনোই ব্যবহার করা উচিত নয়।
- শুধুমাত্র URL থেকে তথ্য উদ্ধারের ক্ষেত্রে গেট(get) রিকুয়েস্ট ব্যবহার যেতে পারে।
পোস্ট(POST) মেথড
একটি post রিকুয়েস্টে কুয়েরিকৃত স্ট্রিং কে নাম এবং ভ্যালুর জোড়া আকারে এইচটিটিপি(HTTP) ম্যাসেজ বডিতে পাঠানো হয়ঃ
POST .../server.php HTTP/1.1
Host: sattacademy.com
name=value
পোস্ট(POST) রিকুয়েস্টের আরো কিছু তথ্যঃ
- পোস্ট(POST) রিকুয়েস্টে তথ্য কখনই ব্রাউজারের URL প্রদর্শিত হয় না।
- পোস্ট(POST) রিকুয়েস্টে তথ্য কখনই ব্রাউজারে ক্যাচড(cached) করতে পারেনা।
- পোস্ট(POST) রিকুয়েস্টে তথ্য ব্রাউজারের হিস্টোরি সংরক্ষিত থাকেনা।
- পোস্ট(POST) রিকুয়েস্টে তথ্য বুকমার্ক করা সম্ভব না।
- পোস্ট(POST) রিকুয়েস্টে তথ্যের length এর কোনো রেস্ট্রিকশন থাকে না।
গেট(GET) এবং পোস্টের(POST) মধ্যে তুলনা
নিচের টেবিলে দুইটি এইচটিটিপি(HTTP) মেথড গেট(GET) এবং পোস্ট(POST)-এর মধ্যে তুলনা করা হয়েছেঃ
গেট(GET) | পোস্ট(POST) | |
---|---|---|
ব্যাক বাটন(Back Button)/পূনঃলোড(Reload) | কোন সমস্যা হবে না। | ডাটা পূনরায় সাবমিট হবে এবং এই সম্পর্কে ব্রাউজার ব্যবহারকারি কে সতর্ক করবে। |
বুকমার্ক(Bookmarked) | বুকমার্ক হতে পারে। | বুকমার্ক হয় না। |
ক্যাচড(Cached) | ক্যাচড(Cached)থাকে। | ক্যাচড(Cached)থাকে না। |
এনকোডিং(encoding) টাইপ | এপ্লিকেশনে ইউআরএল(URL)এনকোড করে। | এপ্লিকেশনে ইউআরএল(URL)এনকোড করে অথবা বিভিন্ন বাইনারি ডাটা এনকোড করে। |
ব্রাউজার হিস্টোরি | প্যারামিটার গুলো ব্রাউজার হিস্টোরিতে সংরক্ষিত হয়। | প্যারামিটার গুলো ব্রাউজার হিস্টোরিতে সংরক্ষিত হয় না। |
নিরাপত্তা | পোস্ট মেথড অপেক্ষায় কম নিরাপদ। সেন্সিটিভ তথ্য(ই-মেইল, পাসোয়ার্ড) পাঠানোর ক্ষেত্রে গেট(get) রিকুয়েস্ট কখনোই ব্যবহার করা উচিত নয়। | গেট(GET) মেথড অপেক্ষায় অধিক নিরাপদ। সর্বদা সেন্সিটিভ এবং অধিক তথ্য একত্রে পাঠানোর ক্ষেত্রে পোস্ট(post) রিকুয়েস্ট ব্যবহার করা উচিত। |
দৃশ্যমান(Visibility) | ব্রাউজারের URL-এ প্রদর্শিত হয়। | ব্রাউজারের URL-এ প্রদর্শিত হয় না। |
অন্যান্য এইচটিটিপি রিকুয়েস্ট মেথড
নিচের টেবিলে অন্যান্য এইচটিটিপি রিকুয়েস্ট মেথড দেওয়া হলঃ
মেথড | বর্ণনা |
---|---|
হেড(HEAD) | গেট(get) এর মতো, কিন্তু শুধু এইচটিটিপি(HTTP) হেডার এর মধ্যে রিটার্ন করে এবং কোন ডকুমেন্ট বডি নেই। | পুট(PUT) | নির্দিষ্ট ইউআরআই((URI))এর বিবৃতি আপলোড করে। |
ডিলেট(DELETE) | নির্দিষ্ট রিসোর্স কে ডিলেট করে। |
অপশন(OPTIONS) | সার্ভার সমর্থিত এইচটিটিপি(HTTP) মেথড রিটার্ন করে। |
কানেক্ট(CONNECT) | রিকুয়েস্ট কানেকশন কে ট্রান্সপারেন্ট টিসিপি(TCP)/আইপি(IP) টানেলে রুপান্তরিত করে। |