প্রতিটি HTTP স্ট্যাটাস কোড, এর অর্থ, কখন পাঠাবেন এবং কোন RFC থেকে এসেছে
আপনার ব্রাউজারে চলে। আপনি যা লেখেন তা কোথাও পাঠানো হয় না।একটি HTTP স্ট্যাটাস কোড 3টি অঙ্কে জানায় কী ঘটেছে। 404 মানে জিনিসটি কখনো সেখানে ছিল না, 410 মানে ছিল এবং চিরতরে চলে গেছে, আর 301 এটিকে স্থায়ীভাবে সরিয়ে দেয়। এখানে প্রতিটি কোড তালিকাভুক্ত, কখন পাঠাবেন এবং কোন RFC সংজ্ঞা দেয় তাসহ।
এই পৃষ্ঠাটি ইংরেজি মূল লেখা থেকে যন্ত্রের সাহায্যে অনুবাদ করা হয়েছে। এই অনুবাদটি এখনও কোনো মানুষ পর্যালোচনা করেননি, তাই ইংরেজি সংস্করণটিকেই নির্ভরযোগ্য ধরুন। ইংরেজি মূল লেখাটি পড়ুন
সার্চ বক্সে একটি নম্বর, একটি নাম বা আপনি যা বলতে চান তা লিখুন, যেমন «rate limit»।
দেখান অংশের বোতাম দিয়ে কোডের তালিকা ছোট করুন: সাধারণ, সব, বা 1xx থেকে 5xx-এর একটি শ্রেণি।
একটি কোড বেছে নিন এর অর্থ, কখন ব্যবহার করবেন, ক্যাশ হয় কি না এবং যে RFC সংজ্ঞা দেয় তা পড়তে।
«এই কোড পাঠান» অংশে একটি ভাষা বেছে নিন এবং কোডটি ফেরত দেওয়ার কোড নিতে স্নিপেট কপি করুন চাপুন।
এই HTTP স্ট্যাটাস কোডের রেফারেন্স 100 থেকে 511 পর্যন্ত প্রতিটি নিবন্ধিত কোড তালিকাভুক্ত করে, আর nginx, Apache, Laravel ও Cloudflare যে অনিবন্ধিত কোডগুলো ফেরত দেয় সেগুলোও। প্রতিটি এন্ট্রিতে বলা আছে কোডটি আসলে কী বোঝায়, কখন পাঠাতে হয়, ক্যাশ হেডার ছাড়াই একটি ক্যাশ রেসপন্স রাখতে পারে কি না, একটি রিডাইরেক্ট অনুরোধের মেথড বদলায় কি না, এবং কোন RFC এর সংজ্ঞা দেয়।
সার্চ তিনভাবে কাজ করে। সরাসরি যেতে 404-এর মতো একটি নম্বর বা 4xx-এর মতো একটি শ্রেণি লিখুন। «not found»-এর মতো একটি নাম লিখুন। অথবা যা প্রকাশ করতে চান তা বর্ণনা করুন, আর উদ্দেশ্যভিত্তিক সার্চ কোডটি খুঁজে দেয়: «login failed» দেয় 401, «rate limit» দেয় 429, «file too large» দেয় 413, «validation failed» দেয় 422।
বেশিরভাগ তালিকা যে দুটি বিষয় ভুল বলে, সেগুলো এখানে আছে। ক্যাশযোগ্যতা শুধু হ্যাঁ বা না নয়: RFC 9110-এর অংশ 15.1 বারোটি কোডের নাম দেয় যা একটি ক্যাশ কোনো স্পষ্ট হেডার ছাড়াই রাখতে পারে, তাই একটি ভুলক্রমে আসা 404 আটকে থাকতে পারে। আর রিডাইরেক্টগুলো আলাদা: 301 ও 302 একটি ক্লায়েন্টকে POST-কে GET-এ বদলাতে দেয়, 303 সবসময় তা করে, আর 307 ও 308-কে মেথড ও বডি হুবহু পুনরাবৃত্তি করতে হয়।
প্রতিটি সাধারণ কোডের সঙ্গে কাঁচা HTTP, Express, Fastify, FastAPI, Go ও PHP-র জন্য একটি কপিযোগ্য স্নিপেট আছে, সেই কোডের প্রয়োজনীয় হেডারসহ, যেমন 401-এ WWW-Authenticate বা 405-এ Allow। কিছুই কোথাও পাঠানো হয় না; পুরো টেবিলটি পেজের ভেতরেই আছে।
401 Unauthorized ব্যবহার করুন। এর মানে সার্ভার জানে না আপনি কে, তাই অনুপস্থিত, মেয়াদোত্তীর্ণ বা ভুল ক্রেডেনশিয়াল এখানেই পড়ে। 403 Forbidden তখনই ব্যবহার করুন যখন আপনি জানেন কে কল করছে এবং তবুও প্রত্যাখ্যান করছেন। স্পেসিফিকেশন প্রতিটি 401-এ একটি WWW-Authenticate হেডার চায়।
401 মানে প্রমাণীকৃত নয়: ক্রেডেনশিয়াল পাঠিয়ে আবার চেষ্টা করুন। 403 মানে প্রমাণীকৃত কিন্তু অনুমতি নেই: ভালো ক্রেডেনশিয়ালেও কাজ হবে না। কোনো রেকর্ডের অস্তিত্ব প্রকাশ করাই যদি ফাঁস হয়, কিছু API 403-এর বদলে 404 উত্তর দেয় যাতে আক্রমণকারী কিছু না জানে।
RFC 9110-এর অংশ 15.1 200, 203, 204, 206, 300, 301, 308, 404, 405, 410, 414 ও 501-কে অনুমানভিত্তিকভাবে ক্যাশযোগ্য বলে, আর RFC 7725 যোগ করে 451। একটি ক্যাশ এগুলো Cache-Control বা Expires হেডার ছাড়াই রাখতে পারে, তাই একটি সাময়িক 404 থেকে যেতে পারে। বাকি সব কোডে স্পষ্ট ক্যাশ হেডার লাগে।
স্পেসিফিকেশন এটি অনুমোদন করে না, কিন্তু প্রায় প্রতিটি ব্রাউজার 301 ও 302-এ ঠিক তা-ই করে। একটি 303 পরের অনুরোধকে সবসময় GET বানায়। মেথড ও বডিকে রিডাইরেক্ট পেরিয়ে টিকে থাকতে হলে সাময়িক সরানোর জন্য 307 বা স্থায়ী সরানোর জন্য 308 ব্যবহার করুন।
418 I'm a Teapot এসেছে RFC 2324 থেকে, যা 1998 সালের একটি কফির পাত্রের প্রোটোকল নিয়ে এপ্রিল ফুলের রসিকতা। 2017 সালে নম্বরটি পুনরায় ব্যবহারের একটি প্রস্তাব আপত্তির পর প্রত্যাহার করা হয়, তাই এটি IANA রেজিস্ট্রিতে সংরক্ষিত থাকে এবং কখনো আসল অর্থে ব্যবহার করা যাবে না।
না। 499 হলো কেবল লগে দেখা nginx-এর একটি কোড, এমন ক্লায়েন্টের জন্য যে সংযোগ কেটে দিয়েছে, আর 520 থেকে 527 হলো এজ ও আপনার অরিজিন সার্ভারের মধ্যের সমস্যার জন্য Cloudflare-এর কোড। এগুলোর কোনোটিই IANA-তে নিবন্ধিত নয়। লগে দেখা পাবেন বলেই এগুলো এখানে আছে, প্রতিটি যে পণ্য উদ্ভাবন করেছে তা দিয়ে চিহ্নিত।
এখনও আটকে আছেন? HTTP স্ট্যাটাস কোড সম্পর্কে প্রশ্ন করুন আর যিনি জানেন তিনিই উত্তর দিতে পারেন। কোনো অ্যাকাউন্ট লাগবে না।