অনুরোধটিতে প্রয়োজনীয় প্যারামিটারটি অনুপস্থিত থাকলে আমার কোন HTTP স্থিতির প্রতিক্রিয়া কোডটি ব্যবহার করা উচিত?


393

আমি ভাবছি 412 (পূর্বশর্ত ব্যর্থ হয়েছে) তবে এর চেয়ে আরও ভাল মানের কি থাকতে পারে?


সাবলীলভাবে সম্পর্কিত: স্ট্যাকওভারফ্লো.com
টিম আবেল

2
412 অবশ্যই ভুল
অরেঞ্জডগ

উত্তর:


387

স্থিতি 422 সবচেয়ে উপর ভিত্তি করে appropiate বলে মনে হয় বৈশিষ্ট

422 (অপ্রসারণযোগ্য সত্তা) স্থিতি কোডটির অর্থ সার্ভারটি অনুরোধ সত্তার সামগ্রীর ধরণটি বোঝে (অতএব একটি 415 (অসমর্থিত মিডিয়া প্রকার) স্থিতি কোড অনুপযুক্ত), এবং অনুরোধ সত্তার বাক্য গঠনটি সঠিক (সুতরাং 400) বাজে অনুরোধ ) স্থিতি কোড অনুপযুক্ত) তবে এতে থাকা নির্দেশাবলী প্রক্রিয়া করতে অক্ষম ছিল। উদাহরণস্বরূপ, যদি কোনও এক্সএমএল অনুরোধের শরীরে সু-গঠিত (যেমন সিন্টেক্সটিক্যালি সঠিক) থাকে তবে এই শব্দ ত্রুটিযুক্ত শর্তটি হতে পারে, এক্সএমএল নির্দেশাবলী se

তারা জানিয়েছে যে ত্রুটিযুক্ত এক্সএমএল খারাপ সিনট্যাক্সের উদাহরণ (400 এর জন্য কল করা)। একটি ত্রুটিযুক্ত ক্যোয়ারী স্ট্রিং এটির সাথে সাদৃশ্যপূর্ণ বলে মনে হয়, তাই 400-টি সুগঠিত ক্যোয়ারী-স্ট্রিংয়ের জন্য উপযুক্ত বলে মনে হচ্ছে না যা প্যারাম অনুপস্থিত।

আপডেট আপডেট @ ডেভিডভি সঠিকভাবে নির্দেশ করে যে এই অনুমানটি মূল HTTP নয়, ওয়েবডিএভি-র জন্য। তবে কিছু জনপ্রিয় অ-ওয়েবডিএভি এপিআই আরও ভাল স্ট্যাটাস কোডের অভাবে (এটি দেখুন ) 422 ব্যবহার করছে ।


2
আইএমও আমি যখন এটির জন্য অতিরিক্ত মান বা অনুপস্থিত মান ছিল না তখন ক্যোরি স্ট্রিংয়ের মানটি ভুল ছিল for অর্থাত। কোনও ই-মেইলের প্রত্যাশা করা এবং এর মান হ'ল '123123'
ডেরেক লিটজ

2
আমি ইউআরএল পাথের পদ্ধতি স্বাক্ষর হিসাবে একটি জিইটি এবং পোষ্ট প্যারামিটারগুলি ভাবার প্রবণতা করি, সুতরাং 404 আমার কাছে বোধগম্য। জনগণের ব্যবহারের জন্য বোঝানো একটি RESTful API- এ অনুপস্থিত / অতিরিক্ত পরামিতিগুলি ফিরিয়ে দেওয়া বুদ্ধিমানের কাজ। কোনও ইউআরএল প্রসঙ্গে কোয়েরি স্ট্রিং প্যারামিটারগুলি সাধারণত কোনও উত্স সনাক্তকরণের জন্য গুরুত্বপূর্ণ এবং অতিরিক্ত বা অনুপস্থিত পরামিতি কোনও অনুমান ছাড়াই এমন একটি সংস্থার প্রতিনিধিত্ব করে যা উপস্থিত নেই। অবশ্যই, সুস্পষ্ট হয়ে দৃ rob়তার সাথে বাণিজ্য বন্ধ রয়েছে এবং alচ্ছিক প্যারামিটারগুলি একটি উত্সকে সম্ভাব্য হিসাবে নিঃশব্দ ত্রুটির পক্ষে ঝুঁকিপূর্ণ করে তোলে। তারপরে ব্যবহারযোগ্যতা রয়েছে ...
ডেরিক লিটজ

13
উল্লিখিত উল্লেখটি ওয়েবডিএভি-র জন্য এবং এটি এইচটিটিপি স্ট্যান্ডার্ড অনুমান নয়।
ডেভিড ভি

1
@ ক্যালভিন সেই ব্লগ পোস্টটি দেখানোর জন্য ধন্যবাদ। টুইটার, উদাহরণস্বরূপ, 422 ব্যবহার করছে তা দেখতে সহায়ক I আমি মনে করি উত্তরটি আরও ভাল হতে পারে যদি আপনি স্পষ্ট করে বলেন যে অনুমিতিটি প্রথম লাইনে ওয়েবডিএভি is আমি যখন আপনার উত্তরটি প্রথম পড়েছিলাম তখন আমি ভেবেছিলাম যে আপনি লিঙ্কটি অনুসরণ না করা অবধি এইচটিটিপি স্ট্যান্ডার্ড অনুমান meant
ডেভিড ভি

3
এটি পঠনযোগ্য: bennadel.com/blog/… আমি নিখোঁজ প্যারামের জন্য 422 ব্যবহার করব না। আমি 400আরও উপযুক্ত মনে করি ।
জেলফির কাল্টসটহল

184

আমি নিশ্চিত নই যে একটি নির্ধারিত মান আছে, তবে আমি 400 ব্যাড রিকোয়েস্টটি ব্যবহার করতাম , যা সর্বশেষ এইচটিটিপি স্পেক (2014 থেকে) নথি নিম্নরূপ :

6.5.1। 400 খারাপ অনুরোধ

৪০০ (খারাপ অনুরোধ) স্থিতি কোডটি ইঙ্গিত দেয় যে ক্লায়েন্ট ত্রুটি বলে মনে করা এমন কোনও কারণে (যেমন, বিকৃত অনুরোধ বাক্য গঠন, অবৈধ অনুরোধ বার্তা ফ্রেমিং, বা প্রতারণামূলক অনুরোধ রাউটিং) এর কারণে সার্ভার অনুরোধটি প্রক্রিয়া করতে বা করতে পারে না।


65
400 Bad Requestপ্রোটোকল-স্তরের সমস্যাগুলি বোঝাতে বোঝানো হয়েছে, অর্থগত ত্রুটিগুলি নয়। যদি আমরা অ্যাপ্লিকেশন-স্তরের (প্রোটোকল-স্তরের পরিবর্তে) ত্রুটিগুলি চিহ্নিত করতে এইচটিটিপি স্থিতি কোডগুলি হাইজ্যাক করতে চলেছি, তবে কেন আপনি পুরোপুরি যান এবং কেবল ব্যবহার করবেন না 412?
ম্যাট জুকোভস্কি

36
গুগলের OAuth 1.0 বাস্তবায়ন এই উত্তরটির সাথে একমত ag POST প্যারামিটারগুলি অনুপস্থিত বা অসমর্থিত হয়ে গেলে 400 জবাব দেওয়া হয়: কোড. google.com/apis/accounts/docs/OAuth_ref.html
টম

1
@ ম্যাট-জুকোভস্কি: "412: সার্ভারে পরীক্ষা করার সময় অনুরোধ-শিরোনাম ক্ষেত্রগুলির এক বা একাধিকতে প্রদত্ত পূর্বশর্তটি মিথ্যা হিসাবে মূল্যায়ন করা হয়" " আরএফসি 2616 থেকে - যদি এটি কোনও পোস্ট হয় তবে প্যারামিটারগুলি অনুরোধের শিরোনামে রয়েছে, অনুরোধ-শিরোনামের ক্ষেত্রগুলিতে নয়। প্রযুক্তিগতভাবে, জিইটি পদ্ধতিটি অনুরোধ-শিরোনামগুলিতে এর পরামিতিগুলি প্রেরণ করে তবে এর পরিবর্তে আমার কিছু ধারাবাহিকতা থাকতে হবে?
টুং

6
@ ম্যাটজুকোভস্কি 400 একটি অ্যাপ্লিকেশন স্তরের স্থিতি কোড। আরএফসি 7231 এর খসড়া সংস্করণে পুনর্নির্মাণের দিকে নজর দিলে আপনি তা দেখতে পাবেন। দুর্ভাগ্যবশত, সর্বশেষ সংস্করণে বাক্যে কথন তাই পরিষ্কার না কারণ সাম্প্রতিক পরিবর্তন লেখক এছাড়াও 422. উদ্ভাবিত
Darrel মিলার

9
@ ড্যারেলমিলার সঠিক ( সরাসরি লিঙ্ক ): "400 (খারাপ অনুরোধ) স্থিতি কোডটি ইঙ্গিত দেয় যে ক্লায়েন্টের ত্রুটি বলে মনে করা হয়েছে এমন কোনও কারণে সার্ভার অনুরোধটি প্রক্রিয়া করতে পারে না বা করবে না (যেমন, ত্রুটিযুক্ত অনুরোধ বাক্য গঠন, অবৈধ অনুরোধ বার্তা) ফ্রেমিং, বা প্রতারণামূলক অনুরোধের রাউটিং)। শব্দার্থবিজ্ঞান এবং এক্সটেনসিবিলিটি প্রত্যাশার উপর নির্ভর করে (প্যারামিটার ব্যতীত কোনও দিন কী একটি অনুরোধ জানানো সম্ভব হবে?) তবে কেবলমাত্র 400 এবং 404 স্ট্যান্ডার্ড এইচটিটিপিতে উপযুক্ত বলে মনে হচ্ছে। অন্যথায়, আপনার এপিআই এর জন্য একটি নতুন কোড আবিষ্কার করুন, তবে শব্দার্থক ওভারলোড করবেন না।
tne

31

.NET-ডাব্লুসিএফ এপিআইHTTP 404 , ওয়েবএইচটিপিবাইন্ডিং ব্যবহার করার সময়, "এন্ডপয়েন্টটি পাওয়া যায়নি" ত্রুটি ফিরে পেয়ে অনুপস্থিত পরামিতিগুলি পরিচালনা করে ।

404 Not Foundযদি আপনি তার পরামিতি স্বাক্ষর সাথে একত্রে আপনার ওয়েব পরিষেবা পদ্ধতির নাম বিবেচনা ইন্দ্রিয় করতে পারেন। এটি হ'ল যদি আপনি কোনও ওয়েব পরিষেবা পদ্ধতি প্রকাশ করেন LoginUser(string, string)এবং আপনি অনুরোধ করেন LoginUser(string)তবে পরবর্তীটি খুঁজে পাওয়া যায় না।

মূলত এর অর্থ হ'ল আপনি যে প্যারামিটার স্বাক্ষর দ্বারা নির্দিষ্ট করেছেন সেগুলি এবং আপনি যে ওয়েব পরিষেবা পদ্ধতিটি কল করছেন সেটি পাওয়া যাবে না।

10.4.5 404 পাওয়া যায় নি

অনুরোধ-ইউআরআইয়ের সাথে মিলে সার্ভারটি কিছু খুঁজে পায়নি। শর্তটি অস্থায়ী বা স্থায়ী কিনা সে সম্পর্কে কোনও ইঙ্গিত দেওয়া হয়নি।

400 Bad Request, যেমন গার্টি প্রস্তাব , একটি বৈধ প্রতিক্রিয়া কোড থাকে, কিন্তু আমি এটা স্বাভাবিকভাবে নিম্ন স্তরের সমস্যার ইঙ্গিত করতে ব্যবহার করা হয় মনে। এটি সহজেই একটি ত্রুটিযুক্ত HTTP অনুরোধ হিসাবে ব্যাখ্যা করা যেতে পারে, অনুপস্থিত বা অবৈধ HTTP শিরোনাম, বা অনুরূপ similar

10.4.1 400 খারাপ অনুরোধ

অনুরোধটি ত্রুটিযুক্ত সিনট্যাক্সের কারণে সার্ভারের দ্বারা বোঝা গেল না। ক্লায়েন্ট পরিবর্তন ছাড়া অনুরোধ পুনরাবৃত্তি করা উচিত।


চেরিপাই ডিফল্টরূপে এটি করে।
ডেরিক লিটজ

আপনি যখন কোনও মডেল গ্রহণ করছেন এবং মডেলের কিছু অংশ অনুপস্থিত রয়েছে এমন কোনও পোস্টের অনুরোধটি পরিচালনা করার বিষয়ে কী হবে? সেক্ষেত্রে আপনি একটি 404 পাবেন না Instead পরিবর্তে আপনি এমন একটি মডেল পান যা বৈধ নয় যদি আমার ভুল না হয় এবং আপনাকে এখন সিদ্ধান্ত নিতে হবে decide
শেন কোর্ট্রিল

1
এই ব্যাখ্যাটি একটি প্রসারিতের মতো মনে হয় এবং একটি আরএসটি পোভের চেয়ে আরপিসি প্রকাশ করে। ইউআরআই হ'ল সনাক্তকারী, এবং এটি বিদ্যমান এবং এটি সন্ধান করা হয়েছে। দেহে যা পাঠানো হয় তা সংস্থান শনাক্তকরণের অংশ নয়। 422 আরও উপযুক্ত।
জোনা

404 হ'ল সঠিক উত্তর, কেবল conক্যমত্য সন্ধান করতে ওয়েবে কিছু ইউআরএল সম্পাদনা করুন!
জেনসন-বাটন-ইভেন্ট

8

আপনি একটি 400 বাজে অনুরোধ কোড প্রেরণ করতে পারেন। এটি একটি সাধারণ-সাধারণ 4XX স্থিতি কোডগুলির মধ্যে একটি, যাতে আপনি কী চান তা বোঝাতে আপনি এটি ব্যবহার করতে পারেন: ক্লায়েন্টটি সঠিকভাবে প্রক্রিয়া করার জন্য আপনার অ্যাপ্লিকেশনটির যে তথ্য / পরামিতিগুলির প্রয়োজন রয়েছে তার অনুরোধ পাঠাচ্ছে।


7

আমাদের এপিআই প্রকল্পের একটিতে আমরা কিছু অনুরোধের জন্য একটি 409 স্থিতি নির্ধারণ করার সিদ্ধান্ত নিয়েছি, যখন পরামিতি হারিয়ে যাওয়ার কারণে আমরা এটি 100% এ পূরণ করতে পারি না।

এইচটিটিপি স্থিতি কোড "409 সংঘাত" আমাদের জন্য একটি ভাল চেষ্টা ছিল কারণ এর সংজ্ঞাটি সংঘাতের উত্সটি সনাক্ত করতে ব্যবহারকারীর জন্য পর্যাপ্ত তথ্য অন্তর্ভুক্ত করতে হবে।

তথ্যসূত্র: w3.org/ প্রোটোকলস /

সুতরাং 400 বা 404 এর মতো অন্যান্য প্রতিক্রিয়ার মধ্যে আমরা একটি নতুন এবং সঠিক অনুরোধ সেট আপ করতে সহায়ক অনুরোধে কিছু নোট সন্ধানের প্রয়োজনীয়তা প্রয়োগ করার জন্য 409 বেছে নিয়েছি।

আমাদের ক্ষেত্রে এটি যে কোনওভাবেই বিশেষত ছিল কারণ অনুরোধটি পুরোপুরি সঠিক না হলে আমাদের কিছু ডেটা প্রেরণ করা দরকার, এবং আমাদের বার্তাটি দেখার জন্য অনুরোধটিতে কী ভুল ছিল তা বুঝতে ক্লায়েন্টকে প্রয়োগ করতে হবে।

সাধারণভাবে যদি আমাদের কেবলমাত্র কিছু অনুপস্থিত প্যারামিটার থাকে তবে আমরা 400 এবং অনুপস্থিত প্যারামিটারের অ্যারেতে যাই । তবে যখন আমাদের আরও কিছু তথ্য প্রেরণের দরকার হবে যেমন একটি বিশেষ কেস বার্তা এবং আমরা নিশ্চিত হতে চাই যে ক্লায়েন্ট এটির যত্ন নেবে আমরা একটি 409 প্রেরণ করি


2
এটি সাধারণ ভুল। 409 হ'ল সম্মতিযুক্ত ইস্যুগুলির জন্য যেমন @ ম্যাক্সিমিগ্লিনাসগুলি নির্দেশ করে বা এমন পরিস্থিতিতে যেখানে কোনও সংস্থান ইতিমধ্যে উপস্থিত এবং সদৃশ অনুমোদিত নয়।
gimlichael

অনুমান অনুযায়ী, "409 (বিবাদ) স্থিতি কোডটি ইঙ্গিত দেয় যে লক্ষ্য সংস্থার বর্তমান অবস্থার সাথে দ্বন্দ্বের কারণে অনুরোধটি শেষ করা যায়নি।" । অনুপস্থিত পরামিতিগুলির জন্য এটি ব্যবহার করা ঠিক ভুল; এটি সম্পূর্ণ ভিন্ন ধরণের ত্রুটি।
মার্ক আমেরিকা

5

আমি সাধারণত ৪২২ (অপ্রসারণযোগ্য সত্তা) এর জন্য যাই যদি প্রয়োজনীয় প্যারামিটারগুলিতে কিছু এপিআই এর শেষ পয়েন্টের সাথে মেলে না (যেমন খুব ছোট পাসওয়ার্ডের মতো) তবে অনুপস্থিত প্যারামিটারের জন্য আমি 406 (অগ্রহণযোগ্য) হয়ে যাব।


8
ভাল, 406 অগ্রহণযোগ্য গ্রহণযোগ্য শিরোনামের সাথে ব্যবহার করা হয় (সার্ভার প্রতিক্রিয়া পাঠাতে না পারলে ক্লায়েন্ট বুঝতে পারে)। "অনুরোধ দ্বারা চিহ্নিত সংস্থানটি কেবল প্রতিক্রিয়া সত্তা উত্পন্ন করতে সক্ষম যার অনুরোধে প্রেরিত গ্রহণযোগ্য শিরোনাম অনুসারে গ্রহণযোগ্য নয় এমন সামগ্রী বৈশিষ্ট্য রয়েছে।" । আমি বর্তমানের নির্দিষ্টকরণের সাথে কোনও "সঠিক" পছন্দ না থাকায় আমি ৪২২ এর সাথে আটকে আছি: - /
জাকুবকেজলিক

এর জন্য 406 ব্যবহার করা ভুল। একটি 406 কোডের অর্থ এই নয় যে অনুরোধটি গ্রহণযোগ্য ছিল না; এর অর্থ হল আপনি অনুরোধটি সন্তুষ্ট করতে পারবেন না কারণ আপনি যে প্রতিক্রিয়াগুলি পরিবেশন করতে সক্ষম হবেন সেগুলি হ'ল অনুরোধে প্রেরিত স্বীকৃতি শিরোনামের ভিত্তিতে ক্লায়েন্টটি গ্রহণযোগ্য নয়। (উদাহরণস্বরূপ, অনুরোধটি অন্তর্ভুক্ত রয়েছে Accept-Language: de, এটি নির্দেশ করে যে এটি কেবল জার্মান ভাষায় প্রতিক্রিয়া গ্রহণ করবে, তবে আপনার সার্ভারটি যে অনুরোধ করা ডকুমেন্টের একমাত্র সংস্করণ রয়েছে তা ইংরেজি বা ফরাসী ভাষায় রয়েছে)) অনুরোধে অনুপস্থিত পরামিতি চিহ্নিত করতে এটি ব্যবহার করা ভুল, অনুমান মধ্যে সংজ্ঞা অনুযায়ী।
মার্ক আমেরিকা

3

আগ্রহীদের জন্য, স্প্রিং এমভিসি (কমপক্ষে 3.x) এই ক্ষেত্রে একটি 400 প্রদান করে, যা আমার কাছে ভুল বলে মনে হয়।

আমি বেশ কয়েকটি গুগল ইউআরএল (অ্যাকাউন্টস.কম.কম) পরীক্ষা করেছি এবং প্রয়োজনীয় প্যারামিটারগুলি সরিয়েছি এবং তারা সাধারণত এই ক্ষেত্রে একটি 404 ফেরত দেয়।

আমি গুগল কপি করব।


18
কারণ গুগল এর অর্থ স্বয়ংক্রিয়ভাবে গুগল ঠিক এটি করে না!
rve

4
আমি সম্মত হয়েছি, অগত্যা 'ঠিক' নয় তবে কখনও কখনও কী সঠিক এবং বুদ্ধিমান তা দুটি ভিন্ন জিনিস।
যাইহোক

কিছু গুগল এপিআই একটি 400 ফেরত দেয়, যেমন github.com/google/google-api-nodejs-client/issues/404
ডেনিস

যা ভুল (এবং কেন স্প্রিং এমভিসি জ্যাক্স-আরএস অনুবর্তী নয়)
জেনসন-বোতাম-ইভেন্ট

3

এটি যুক্তিযুক্ত হতে পারে যে একটি 404 Not Foundব্যবহৃত হওয়া উচিত যেহেতু নির্দিষ্ট সংস্থানটি পাওয়া যায় নি।


3
জাভা জ্যাক্স-আরএসের এটি ডিফল্ট আচরণ যখন কোনও কোয়েরি প্যারামিটারগুলি যথাযথ ডেটাটাইপে রূপান্তর করা যায় না। যদিও আমি এর সাথে একমত হই না। রিসোর্স WAS পাওয়া গেছে: ক্যোয়ারী প্যারামিটারগুলি রিসোর্স ফিল্টার করার জন্য এবং ফিল্টারগুলির একটির কাছে একটি অগ্রহণযোগ্য মান সরবরাহ করা হয়েছিল। আমি মনে করি এটি 422 অপ্রসারণযোগ্য সত্তার নিকটতম এবং 400 টি খারাপ অনুরোধের দ্বিতীয়টি নিকটতমের সাথে মেলে।
রায়ান 18

এটি জ্যাক্স-আরএসের ডিফল্ট আচরণ কারণ এটির সঠিক আচরণ!
জেনসন-বাটন-ইভেন্ট

404 ব্যবহার করা যুক্তিসঙ্গত যখন ক্যোরি স্ট্রিং প্যারামিটারটি কোনও সংস্থান চিহ্নিত করার জন্য বোঝানো হয়, একটি মান দেওয়া হয়েছিল, তবে সেই মানটি কোনও উপস্থিতি সংস্থানটির সাথে মেলে না - উদাহরণস্বরূপ, আপনি যদি অনুরোধ করছেন উদাহরণস্বরূপ / শো- ব্যবহারকারীর -প্রোফাইল? ব্যবহারকারী_আইডি = 123 এবং ব্যবহারকারী 123 বিদ্যমান নেই। তবে এই প্রশ্নটি এ সম্পর্কে নয়; এটি এমন পরিস্থিতিতে ছিল যেখানে প্রয়োজনীয় প্যারামিটারটি পুরোপুরি বাদ দেওয়া হয়। আমি দেখতে পাচ্ছি না যে এটি কোনও নির্দিষ্ট সংস্থানটির সাথে কী মিলছে found
মার্ক আমেরিকা

2

আমি প্রায়শই একটি 403 নিষিদ্ধ ত্রুটি ব্যবহার করি। যুক্তিটি হ'ল অনুরোধটি বোঝা গিয়েছিল, তবে আমি অনুরোধ অনুযায়ী করব না (কারণ জিনিসগুলি ভুল) because প্রতিক্রিয়া সত্তা ভুলটি কী তা ব্যাখ্যা করে, সুতরাং যদি প্রতিক্রিয়াটি একটি HTML পৃষ্ঠা হয় তবে ত্রুটি বার্তাগুলি পৃষ্ঠাতে রয়েছে। এটি যদি কোনও JSON বা XML প্রতিক্রিয়া হয় তবে ত্রুটির তথ্য সেখানে রয়েছে।

আরএফসি 2616 থেকে :

10.4.4 403 নিষিদ্ধ

সার্ভারটি অনুরোধটি বুঝতে পেরেছিল তবে তা পূরণ করতে অস্বীকার করছে।
অনুমোদন সাহায্য করবে না এবং অনুরোধটির পুনরাবৃত্তি করা উচিত নয়।
যদি অনুরোধের পদ্ধতিটি হেড না হয় এবং সার্ভারটি
কেন অনুরোধটি পূরণ করা হয়নি তা জনসাধারণের কাছে প্রকাশ করতে চায় তবে এটি সত্তায় অস্বীকার করার কারণটি বর্ণনা করতে হবে। সার্ভার যদি ক্লায়েন্টের কাছে এই তথ্যটি সরবরাহ করতে না চায় তবে স্থিতি কোড 404
(পাওয়া যায়নি) পরিবর্তে ব্যবহার করা যেতে পারে।


4
প্রথমদিকে খুব ভাল লাগছে, যদিও আমি স্বাভাবিকভাবে এটিকে প্রমাণীকরণ বা অনুমতি ভিত্তিক ত্রুটির সাথে সংযুক্ত করি। এছাড়াও, স্পিকারটি এইদিকে ইঙ্গিত দেয় যেখানে এটি বলে যে "যদি সার্ভার ক্লায়েন্টের কাছে এই তথ্যটি সরবরাহ করতে চায় না"। এছাড়াও 404 এর চেয়ে ভাল বিকল্প হতে পারে। আমি 403 এর চেয়ে 404 বা 400 এর দিকে যাব
টনিহাব

21
প্রযুক্তিগত দিক থেকে ভাল হলেও এটি একটি ভয়ানক ধারণা। 403 সর্বজনীনভাবে লেখক ব্যর্থতার প্রতিক্রিয়াগুলির জন্য ব্যবহৃত হয় এবং আপনি যদি প্যারামিটারের ত্রুটিগুলি চিহ্নিত করতে এটি ব্যবহার করার চেষ্টা করেন তবে আপনি আপনার ক্লায়েন্টগুলির মধ্যে থেকে এই নরকে বিভ্রান্ত করবেন। উদাহরণস্বরূপ টুইটার এটি করে - 403 উভয়ই ব্যবহৃত হয় যখন আপনি অবৈধ OAuth শংসাপত্রগুলি সরবরাহ করেন এবং যখন আপনার অনুরোধের সাথে শব্দার্থগতভাবে কোনও ভুল হয় - এবং এটি API ক্লায়েন্টদের জন্য একটি ধ্রুবক উত্স।
ম্যাট জুকোভস্কি

1
@ ম্যাটজুকভস্কি ভাল এটা ঠিক ভুল। অনুমানটি বলছে Authorization will not help, তাই টুইটারের এটিকে অবৈধ OAuth শংসাপত্রগুলির জন্য প্রেরণ করা উচিত নয়।
টরভিন

401 Unauthorizedপরিবর্তে @torvin টুইটারের একটি পাঠানো উচিত । তবে, আপনি বুঝতে পারবেন কেন তারা এই দুটি কোডের এমডিএন ডক্সের বিবরণটি দেখেন না কেন এটি খুব মিল।
আগি হামারথিফ

-1

কেবলমাত্র এএসপি.নেট কোরকে একটি রেফারেন্স বা উদাহরণ হিসাবে ব্যবহার করতে, এএসপি.নেট কোর আপনাকে একটি ক্রিয়াকলাপ দিয়ে একটি নিয়ামককে ভাসিয়ে দিতে দেয়, "বিশদ" ক্রিয়াটি এভাবে দেখাবে।

    // GET: Cars/Details/5
    public async Task<IActionResult> Details(int? id)
    {
        if (id == null)
        {
            return NotFound();
        }

        var car = await _context.Cars.FirstOrDefaultAsync(m => m.CarId == id);
        if (car == null)
        {
            return NotFound();
        }

        return View(car);
    }

যদি প্যারামিটারটি idসেট না করা থাকে তবে এটি 404 পাওয়া যায়নি returns


-5

একটি 404 রিটার্ন করুন - যার অর্থ উত্সটি পাওয়া যায়নি।

কোনও আইডি থাকা কোনও সাইটের ইউআরএল সম্পাদনা করার চেষ্টা করুন। আমি কয়েকটি চেষ্টা করেছিলাম:

  • গিতুব রেপো ইস্যু
  • সঙ্গম পৃষ্ঠা
  • আমাজন পণ্য দেখুন
  • ইবে তালিকা
  • বিবিসি নিউজ নিবন্ধ

সমস্ত 404 ফিরে আসে, ইমো কারণ develop বিকাশকারীরা স্ট্যান্ডার্ডটি সঠিকভাবে ব্যাখ্যা করছে, যার উত্তর এখানে এবং আরও অনেকগুলি নয়!


1
আমি বিশ্বাস করি যে বেশিরভাগ ডেভস "ক্যারিয়ারের প্যারামিটার" কে কোয়েরি স্ট্রিংয়ের নাম / মান জোড়াগুলির একটি হিসাবে সংজ্ঞায়িত করে বা পোষ্ট বডি গঠন করে। একটি গিথুব রেপো ইস্যু অনুরোধের মধ্যে এটি নেই।
কেলভিন

@ ক্যালভিন আমরা ডেভসগুলিতেও তালিকার মধ্যে প্যাথ পরামিতিগুলি অন্তর্ভুক্ত করে। যদি কোনও ইউআরএল প্যারামিটার বাধ্যতামূলক হয়, কোনও উত্সের অবস্থানের প্রতিনিধিত্ব করে এবং অন্তর্ভুক্ত না করা হয়, তবে 404 ফিরিয়ে দেওয়া উচিত। এটি বাদ দেয় requestBody
জেনসন-বাটন-ইভেন্ট

-6

আমি একটি 403 সঙ্গে যেতে হবে।

আরএফসি 2616 থেকে - হাইপারটেক্সট স্থানান্তর প্রোটোকল - HTTP / 1.1

403 নিষিদ্ধ

সার্ভারটি অনুরোধটি বুঝতে পেরেছিল তবে তা পূরণ করতে অস্বীকার করছে। অনুমোদন সাহায্য করবে না এবং অনুরোধটির পুনরাবৃত্তি করা উচিত নয়। যদি অনুরোধের পদ্ধতিটি হেড না হয় এবং সার্ভারটি কেন অনুরোধটি পূরণ করা হয়নি তা জনসাধারণের কাছে প্রকাশ করতে চায় তবে এটি সত্তায় অস্বীকার করার কারণটি বর্ণনা করতে হবে। সার্ভার যদি ক্লায়েন্টের কাছে এই তথ্যটি সরবরাহ করতে না চায় তবে স্থিতি কোড 404 (পাওয়া যায়নি) পরিবর্তে ব্যবহার করা যেতে পারে।

আপনার প্রতিক্রিয়াতে ব্যর্থতার কারণটি বর্ণনা করা উচিত। আপনি যদি এটি না করতে পছন্দ করেন তবে কেবল 404 ব্যবহার করুন।


3
ডাউনভোটেড কারণ এটি একটি সদৃশ উত্তর। আপনার পুরানো উত্তরের মন্তব্য হিসাবে আপনার সর্বশেষ বাক্যটি যুক্ত করার বিষয়ে বিবেচনা করুন যা 403
ব্যবহারকারী
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.