প্রথমে সালাম। আশাকরি সবাই ভাল আছেন।।
আজকের আলোচনার বিষয় HTTP ERROR নিয়ে। যা সবারই
জানা প্রয়োজন।
Http Error একটি পরিচিত বিষয়। ইন্টারনেটে ব্রাউজ করতে করতে আমরা বিভিন্ন সময়ই দেখি 404 Page not found বা 503 Service unavailable এরকম এরর। এছাড়াও আরো বিভিন্ন HTTP Success অথবা Error কোড চোখে পড়ে আমাদের। কিন্তু অনেকেই জানেনা বিভিন্ন নাম্বার সম্বলিত সেই কোডগুলো সম্বন্ধে তাই আজ আমার এই টিউনে আমি সেই কোডগুলো সম্বন্ধেই একটু ধারনা দিতে চেষ্টা করবো।
1xx Informational
১ দিয়ে শুরু হওয়া কোডগুলো বুঝায় যে অনুরোধ গৃহিত হয়েছে সার্ভারে, এবং অনুরোধটি প্রসেস করা হচ্ছে।
(শুধু স্টেটাস লাইন ও অপশনাল হেডারের মাধ্যমে এ ধরনের স্টেটাস কোড বিভিন্ন শর্তাধীনে রিস্পন্স করা নির্দেশ করে থাকে। যেহেতু HTTP/1.0 তে 1xx স্টেটাস কোড ব্যবহৃত হয় না, তাই পরীক্ষামূলক কোন পরিস্থিতি ছাড়া সার্ভারের অবশ্যই কোন HTTP/1.0 ক্লায়েন্টের কাছে 1xx রিস্পন্স পাঠানো উচিত হবে না।)
100 continue
এটা দ্বারা বুঝায় যে, সার্ভারে রিকোয়েস্টেড হেডারগুলো গৃহীত হয়েছে, এবং ক্লায়েন্ট রিকোয়েস্টেড বডি প্রেরণ করতে পারে। ভুল হেডারের কারনে সার্ভারে কোন রিকোয়েস্ট ব্যর্থ হলে বড় আকারের রিকোয়েস্টেড বডি সার্ভারে প্রেরন করা বৃথা। শুধু হেডারের উপর ভিত্তি করে রিকোয়েস্ট গৃহীত হবে কিনা তা জানার জন্য জন্য সার্ভার চেক করতে একজন ক্লায়েন্টকে অবশ্যই হেডারের প্রারম্ভিক রিকোয়েস্ট হিসেবে Expect: 100-continue কোড প্রেরন করতে হবে এবং কাজ শুরু চালানো শুরু আগে, অবশ্যই চেক করে নিতে হবে যে, 100-continue স্টেটাস কোড সার্ভার কতৃক গৃহীত হয়েছে। (যদি সার্ভার রিস্পন্স হিসেবে 417 Expectation Failed কোড সো করে কন্টিনিউ করা উচিত হবে না।)
101 Switching Protocols
এই কোড দ্বারা বুঝায় অনুরোধকারী সার্ভারকে প্রোটোকল সুইচ করতে অনুরোধ করছে এবং সার্ভারও তাতে সাড়া দিয়েছে।
102 Processing (WebDAV) (RFC 2518)
যেহতু একটি WebDAV রিকোয়েস্ট অনেক সাব-রিকোয়েস্ট ধারন করতে পারে তাই এ ধরনের রিকোয়েস্ট সম্পাদন করতে অনেক সময় লাগতে পারে। এ ধরনের কোড বুঝায় যে, সার্ভার কতৃক রিকোয়েস্ট গৃহীত হয়েছে এবং সার্ভার রিকোয়েস্ট প্রসেস করছে কিন্তু এখন পর্যন্ত কোন রিস্পন্স পাওয়া যাচ্ছে না। এর ফলে ক্লায়েন্ট বুঝতে পারে যে কাজ চলছে এবং তার রিকোয়েস্টটি হারিয়ে যায়নি।
2xx Success
এই শ্রেনীর স্টেটাস কোড বুঝায় যে, ক্লায়েন্টোর দ্বারা অনুরোধকৃত কাজটি গৃহীত হয়েছে, তা বোঝা গেছে, অনুমোদিত হয়েছে এবং সফলতার সাথে প্রসেস করা হয়েছে।
200 OK
এটি একটি সফল HTTP রিকোয়েস্টের আদর্শ রিস্পন্স। প্রকৃত রিস্পন্স সাধারণত রিকোয়েস্টের পদ্ধতির উপর নির্ভর করে। একটি GET রিকোয়েস্টের ক্ষেত্রে, রিস্পন্সের সাথে “অনুরোধকৃত রিসোর্সের সাথে রিকোয়েস্টের একটি এনটিটিও যুক্ত থাকে। POST রিকোয়েস্টের ক্ষেত্রে, রিস্পন্সের সাথে অনুরোধকৃত কাজের ব্যাখ্যা বা ফলাফল যুক্ত থাকে।
201 Created
এই কোডটি দ্বারা বুঝায় যে, অনুরোধটি গৃহীত হয়েছে যার ফলে একটি নতুন রিসোর্স তৈরি করা হচ্ছে।
202 Accepted
এ কোডটি দ্বারা বুঝায়, প্রসেসিংয়ের জন্য রিকোয়েস্টটি গৃহীত হয়েছে, কিন্তু প্রসেসিং সম্পাদিত হয়নি।
203 Non-Authoritative Information (since HTTP/1.1)
এ কোডের দ্বারা বুঝায় সার্ভার সফলতার সাথে রিকোয়েস্ট সম্পাদিত করেছে, কিন্তু এ থেকে যে তথ্য পাওয়া যাচ্ছে তা সম্ভবত অন্য কোন উৎস থেকে আসছে।
204 No Content
এ কোডের দ্বারা বুঝায় যে সার্ভার সফলতার সাথে অনুরোধ সম্পাদিত করেছে, কিন্তু কোন কন্টেন্টই নাই।
205 Reset Content
এ কোড দ্বারা বুঝায় সার্ভার সফলতার সাথে অনুরোধ সম্পাদিত করেছে কিন্তু কোন কন্টেন্টই আসছে না। 204 কোডের চেয়ে কিছুটা ভিন্ন এ কোডের ক্ষেত্রে রিস্পন্সটি অনুরোধকারীকে তার ডকুমেন্ট ভিউকে রিসেট করতে বলে।
206 Partial Content
এ কোডটি বুঝায় ক্লায়েন্টের পাঠানো রেঞ্জ হেডারের কারনে সার্ভার রিসোর্সের মাত্র একটি অংশ প্রেরন করছে। রিজিউম, বাধাগ্রস্থ ডাউনলোড এবং একটি ডাউনলোডকে একইসাথে বহুমুখি স্ট্রীমের মাধ্যমে ভাগ করে ডাউনলোডের ক্ষেত্রে এ কোডটি wget টুলস কর্তৃক ব্যবহৃত হয়ে থাকে।
207 Multi-Status (WebDAV) (RFC 2518)
এ কোড বুঝায় যে ম্যাসেজের বডিটি একটি XML ম্যাসেজ, যা ভিন্ন ভিন্ন সাব-রিকোয়েস্টের জন্য ভিন্ন ভিন্ন রিস্পন্স কোড ধারন করে থাকে।
এই শ্রেনীর কোডের ক্ষেত্রে এটা বুঝায় যে রিকোয়েস্ট সম্পাদিত করতে ক্লায়েন্টকে অবশ্যই রিডিরেক্ট হবে।
যদি এবং কেবল যদি দ্বিতীয় রিকোয়েস্টের ক্ষেত্রে GET অথবা HEAD পদ্ধতি ব্যবহার করা হয় তাহলে হয়তোবা ঐ অ্যাকশন ব্যাবহারকারীর সাথে কোন ক্রিয়া-প্রতিক্রিয়া ছাড়াই ব্যবহারকারীর এজেন্টের মাধ্যমে সম্পাদিত হবে। ব্যবহারকারীর এজেন্ট কখনোই কোন রিকোয়েস্টকে পাঁচ মিনিটের বেশি রিডিরেক্ট করতে পারবে না, কারন তখন বুঝা যায় যে হয়তো এ ধরনের রিডিরেকশন একটি অনির্দিষ্ট লুপ বা চক্রের সৃষ্টি করছে।
301 Moved Permanently
এ কোড দ্বারা বুঝায় এটি এবং ভবিষ্যতের সকল রিকোয়েস্ট প্রদত্ত্ব URL এ ডিরেক্ট করে দেয়া হবে।
302 Found
এটি সবচেয়ে জনপ্রিয় রিডিরেক্ট কোড কিন্তু এটি একটি ইন্ডাস্ট্রিয়াল প্রেকটিস যা স্টেন্ডার্ড নীতির বিরোধী। HTTP/1.0 মতে একজন ক্লায়েন্ট শুধু অস্থায়ী রিডিরেক্ট করতে পারবেন, কিন্তু জনপ্রিয় ব্রাউজার 302 কোড কে 303 see other কোডের মত বাস্তবায়িত করেছে। সেই জন্যেই HTTP/1.1 এ স্টেটাস কোড 303 এবং 307 কে যুক্ত করেছে, যাতে ঐ ভিন্ন দুটি আচরনকে স্বাতন্ত্র্য করা যায়। যাইহোক, এখনো বেশির ভাগ ওয়েব অ্যাপ্লিকেশন এবং ফ্রেমওয়ার্কই 302 স্টেটাস কোডকে এমন ভাবে ব্যবহার করে যেন এটি 303।
303 See Other (since HTTP/1.1)
এ কোডটি দ্বারা বুঝায় যে অনুরোধের রিস্পন্সটি GET পদ্ধতির সাহায্যে আরেকটি URL থেকে পাওয়া যাবে। যখন PUT এর রিস্পন্স হিসেবে এ ধরনের কোড পাওয়া যাবে, তখন বুঝতে হবে যে, সার্ভার ডাটা রিসিভ করেছে এবং রি-ডিরেক্ট আরেকটি GET ম্যাসেজের মাধ্যমে ইস্যু করতে হবে।
304 Not Modified
এ কোডের মাধ্যমে বুঝায় যে সর্বশেষ রিকোয়েস্টের পর রিসোর্সটিকে আর মডিফাই করা হয়নি।
305 Use Proxy (since HTTP/1.1)
প্রাথমিক নিরাপত্তার কারনে মজিলা এবং ইন্টারনেট এক্সপ্লোরারের মত অনেক HTTP ক্লায়েন্ট এ স্টেটাস কোডের সাহায্যে সঠিকভাবে রিস্পন্স করে না।
306 Switch Proxy
আর ব্যবহার করা হয় না।
307 Temporary Redirect (since HTTP/1.1)
এ কোডের ক্ষেত্রে অন্যকোন URI এর মাধ্যমে পুনরায় রিকোয়েস্ট করতে হবে। কিন্তু ভবিষ্যতের রিকোয়েস্টগুলো ক্ষেত্রে তারপরেও অরিজিনাল URI ব্যবহার করা যেতে পারে। 303 এর সাথে তুলনা করতে গেলে, এ ক্ষেত্রে রিকোয়েস্ট রি-ইস্যু করার সময় রিকোয়েস্টের পদ্ধতি পরিবর্তন করা যাবে না। উদাহরণস্বরূপ: একটি POST রিকোয়েস্ট অবশ্যই পুনরায় ইস্যু করার সময় আরেকটি POST রিকোয়েস্ট ব্যবহার করতে হবে।
ক্লায়েন্ট কোন ভুল করলে এ শ্রেনীর স্টেটাস কোড ব্যবহৃত হয়। শুধু HEAD রিকোয়েস্ট ছাড়া বাকি সবগুলো রিস্পন্সের সাথেই সার্ভার ভুলের ব্যখ্যা সহ একটা এনটিটি যুক্ত করে দেয় এবং আরো জানিয়ে দেয় এ পরিস্থিতি কি স্থায়ী না অস্থায়ী। যেকোন রিকোয়েস্ট পদ্ধতির ক্ষেত্রেই এ স্টেটাস কোডগুলো প্রযোজ্য। এক্ষেত্রে ব্যবহার কারীর এজেন্ট সকল যুক্ত এনটিটিগুলোকে প্রদর্শিত করে। নিচে সাধারনতো সবচেয়ে বেশি ব্যবহৃত Error কোডগুলো দেয়া হল:
400 Bad Request
এ কোড বুঝায় যে রিকোয়েস্টে পদবিন্যাসে ভুল রয়েছে।
401 Unauthorized
এটি 403 Forbidden কোডের অনুরূপ কিন্তু শুধুমাত্র authentication সম্ভব হয়।
402 Payment Required
এ কোডটি বুঝায় ভবিষ্যতে ব্যবহারের জন্য সংরক্ষন করা হল। আসলে প্রকৃত উদ্দেশ্যটি হল, এ কোড সাধারণত কোন ডিজিটাল ক্যাস বা মাইক্রোপেইমেন্টোর পরিকল্পনার একটি অংশ হিসেবে ব্যবহৃত হওয়ার কথা, যেহেতু তা হয়নি তাই এই কোডও কখনো ব্যবহৃত হয়নি।
403 Forbidden
এ কোড দ্বারা বুঝায় রিকোয়েস্টটি একটি লিগাল রিকোয়েস্ট ছিল, কিন্তু সার্ভার এ রিকোয়েস্টের জন্য রিস্পন্স করতে অসম্মতি জানাচ্ছে।
404 Not Found
এ কোডের দ্বারা বুঝায় অনুরোধকৃত রিসোর্চ বর্তমানে পাওয়া সম্ভব নয়, তবে ভবিষ্যতে পাওয়া যেতে পারে। এর পরবর্তিতে ক্লায়েন্টোর আরো রিকোয়েস্ট করা অনুমোদিত।
405 Method Not Allowed
এ কোড দ্বারা বুঝায় এমন একটি পদ্ধতির সাহায্যে রিসোর্স রিকোয়েস্ট করা হয়েছে যা ঐ রিসোর্স সাপোর্ট করে না। উদাহরনস্বরূপ: যেখানে POST প্রয়োজন সেখানে GET পদ্ধতি ব্যবহার করলে এ স্টেটাস কোডটি প্রদর্শিত করবে।
406 Not Acceptable
এ কোড দ্বারা বুঝায় রিকোয়েস্টেড রিসোর্স শুধু সেই কন্টেন্ট তৈরী করতে সক্ষম যা রিকোয়েস্টের সাথে প্রেরীত Accept headers অনুসারে গ্রহণযোগ্য নয়।
408 Request Timeout
এ কোড দ্বারা বুঝায় রিকোয়েস্টের জন্য অপেক্ষার করতে করতে সার্ভারের টাইম আউট হয়ে গেছে।
409 Conflict
এ কোড বুঝায় যে রিকোয়েস্ট সম্পাদিত করা যাচ্ছে না কারন রিকোয়েস্টের মধ্যে Conflict রয়েছে। যেমন: Edit-conflict.
410 Gone
এ কোড দ্বারা বুঝায় যে অনুরোধকৃত রিসোর্চ এখন আর পাওয়া সম্ভব নয় এবং ভবিষ্যতেও পাওয়ার সম্ভাবন নেই।
411 Length Required
এ কোড বুঝায় যে রিকোয়েস্টের সাথে কন্টেন্টের লেন্থ দিয়ে দেয়া হয়নি, যা অনুরোধকৃত রিসোর্চ ব্যবহারের ক্ষেত্রে প্রযোজ্য।
412 Precondition Failed
এ কোডটি বুঝায় আনুরোধকারীর রিকোয়েস্টে একটি পূর্বশর্ত মেনে চলা হয়নি।
413 Request Entity Too Large
এ কোডটি বুঝায় যে অনুরোধকারী সার্ভারের অনুমোদিত বা ধারনাক্ষমতার বেশি পরিমানে রিকোয়েস্ট করেছেন।
414 Request-URI Too Long
এ কোড দ্বারা বুঝায় যে প্রদত্ত URI সার্ভারের প্রসেস করার জন্য যথেষ্ট বড়।
415 Unsupported Media Type
এ কোডটি বুঝায় সার্ভার বা রিসোর্চ সাপোর্ট করে এমন কোন মিডিয়া ফাইল রিকোয়েস্ট করা হয় নি।
416 Requested Range Not Satisfiable
এ কোডটি বুঝায় যে ক্লায়েন্ট একটি ফাইলের শুধু একটি অংশের জন্য অনুরোধ করেছেন কিন্তু সার্ভার সেই উল্লেখ্য অংশটি সাপ্লাই করতে পারছে না।
417 Expectation Failed
এ কোড দ্বারা বুঝায় Expect request-header field এর জন্য প্রযোজ্য যোগ্যতা সার্ভারটির ক্ষমতার সাথে মিলছে না।
418 I’m a teapot
এ কোডটি দ্বারা বুঝায় HTCPCP সার্ভার একটি teapot। RFC 2324, Hyper Text Coffee Pot Control Protocol অনুসারে এ কোডটিকে একটি প্রথাগত IETF April Fools’ jokes হিসেবে ব্যাখ্যা করা হয়েছে।
422 Unprocessable Entity (WebDAV) (RFC 4918)
এ কোডটি বুঝায় রিকোয়েস্টটির কাঠামো সঠিক ছিল কিন্তু অর্থগত কারনে এটা অনুসরন করা সম্ভব নয়।
423 Locked (WebDAV) (RFC 4918)
এ কোডটি বুঝায় যে রিসোর্স অনুরোধ করা হয়েছিল তা লক করা অবস্থায় আছে।
424 Failed Dependency (WebDAV) (RFC 4918)
এ কোডটি বুঝায় পূর্ববর্তি রিকোয়েস্টটি ব্যর্থ হওয়ার করনে উক্ত রিকোয়েস্টটিও ব্যর্থ হয়েছে।
425 Unordered Collection (RFC 3648)
এ কোডটি “WebDAV Advanced Collections Protocol” এ পাওয়া যায়ে কিন্তু “Web Distributed Authoring and Versioning (WebDAV) Ordered Collections Protocol” এ অনুপস্থিত।
426 Upgrade Required (RFC 2817)
এ কোডটি বুঝায় ক্লায়েন্টকে অন্য প্রোটোকল যেমন TLS/1.0 এ সুইচ করতে হবে।
449 Retry With
এটি একটি মাইক্রোসফটএর এক্সটেনশন নির্দেশ করে এবং বুঝায় যে সঠিক কার্য সম্পাদনের পর পুনরায় রিকোয়েস্ট করতে হবে।
450 Blocked by Windows Parental Controls
এটিও একটি মাইক্রোসফট এক্সটেনশন নির্দেশ করে। যখন উইন্ডোজ পেরেন্টাল কন্ট্রোল অন করা থাকে তখন এ কোডটি প্রদর্শিত হয় এবং রিকোয়েস্ট করা ওয়েবপেইজটির অ্যাকসেস বন্ধ করে দেয়া হয়।
5xx Server Error
এ শ্রেনীর কোডগুলো তখনই প্রদর্শিত হয় যখন সার্ভার দৃশ্যত একটি ভ্যালিড রিকোয়েস্ট পূরণ করতে ব্যর্থ হয়।
রিস্পন্স স্টেটাস কোডের শুরুতে “5” থাকার মানেই হলো সার্ভারে কোন ত্রুটি দেখা দিয়েছে বা এটা কোন রিকোয়েস্ট সম্পাদিত করতে সক্ষম নয়। শুধু HEAD ফাইল ছাড়া, অন্যক্ষেত্রে সার্ভার রিস্পন্স এর সাথে ভুলের ব্যাখ্যা সহ একটি এনটিটি যুক্ত করে দিবে এবং এ ভুলের স্থায়ী সম্পর্কে ধারনা দিবে। ব্যবহারকারীর এজেন্ট উল্লেখিত এনটিটি ব্যবহারকারীকে প্রদর্শন করবে।
নিচের রিস্পন্স কোডগুলো যেকোন রিকোয়স্ট পদ্ধতির জন্য্ই প্রযোজ্য:
500 Internal Server Error
এ কোডটি বুঝায় যখন সার্ভার সৃষ্ট সমস্যার কোন কারন খুজে না পায় তখন এ স্টেটাস কোডটি প্রদর্শন করে।
501 Not Implemented
এ কোডটি দ্বারা বুঝায় সার্ভার রিকোয়েস্ট পদ্ধতিটি বুঝতে পারছে না অথবা এটি রিকোয়েস্ট পূর্ণ করতে সক্ষম নয়।
502 Bad Gateway
এ কোডটি থেকে বুঝা যায় সার্ভারটি একটি gateway বা proxy হিসেবে কাজ করছিল এবং ডাউন-স্ট্রীম সার্ভার থেকে একটি ইন-ভ্যালিড রিস্পন্স প্রাপ্ত হয়েছে।
503 Service Unavailable
এ কোডটি বুঝায় সার্ভারটি বর্তমানে বন্ধ আছে। সাধারনত, এ কোডটি অস্থায়ী অবস্থা বুঝাতে ব্যবহৃত হয়।
504 Gateway Timeout
এ কোডটি থেকে বুঝা যায় এ কোডটি থেকে বুঝা যায়: সার্ভারটি একটি gateway বা proxy হিসেবে কাজ করছিল এবং এটি ডাউন-স্ট্রীম সার্ভার থেকে সময় মতো একটি রিকোয়েস্ট পেতে ব্যর্থ হয়েছে।
505 HTTP Version Not Supported
এ কোডটি বুঝায় রিকোয়েস্টে ব্যবহৃত HTTP প্রোটোকলের ভার্সানটি ঐ সার্ভার সাপোর্ট করে না।
506 Variant Also Negotiates (RFC 2295)
এ কোডটি বুঝায় যে অনুরোধটির জন্য স্বচ্ছ কন্টেন্ট-নেগোসিয়েশনের ফলস্বরূপ একটি চক্রকার রেফারেন্স সৃষ্টি হয়েছে।
507 Insufficient Storage (WebDAV) (RFC 4918)
এই অনুরোধটি সম্পূর্ণ করার জন্য পর্যাপ্ত স্থান নেই।
509 Bandwidth Limit Exceeded (Apache bw/limited extension)
এ স্টেটাস কোডটি বোঝায় অনুরোধটি সম্পন্ন করার জন্য যে পরিমান ব্যান্ডউইডথ দরকার সার্ভারের, তা RFCs এ নেই।
510 Not Extended (RFC 2774)
এ কোডটি বুঝায় এ রিকোয়েস্টটি পূর্ণ করতে সার্ভারের জন্য আরো বর্ধিত এক্সটেনশন প্রয়োজন।
আজ এখানেই।। কোন কিছু জানতে কমেন্ট করবেন। ফেসবুকে আমাকে নক করতে fb.com/maxtaizul
14 thoughts on "হোস্টিং এ HTTP Error কোনটার কি মানে এবং কেন? আশা করি সকলের উপকারে আসবে।"