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


51

আমাদের পরিষেবা এই মুহূর্তে 5 টি শহরে। যদি কেউ অন্য কোনও শহর থেকে আমাদের পরিষেবা এপিআই কল করার চেষ্টা করে তবে আমরা এই ত্রুটিটি ফেলে দিতে চাই Service not available in your area

প্রশ্নটি হল, এই ত্রুটির জন্য উপযুক্ত এইচপি কোডটি কী হবে?

  • 503: পরিষেবা অনুপলব্ধ
  • 403 নিষিদ্ধ

অথবা অন্য কিছু?


52
"যদি কেউ অন্য কোনও শহর থেকে আমাদের পরিষেবা এপিআই কল করার চেষ্টা করে" মনে রাখবেন যে আইপি ভূগোলের অবস্থানটি প্রায়শই ভুল, আপনি যদি এমন কোনও ব্যবহারকারীকে নিষেধ করেন যাঁর আইপি অন্য কোনও শহরে জিওলোকেট করে থাকেন তবে আপনি সম্ভবত বৈধ ব্যবহারকারীদের লক আউট করবেন।
পিটার গ্রিন

43
আমি কি আমার সন্তানের জন্য যাত্রা শোনার অনুমতি পাচ্ছি না, যিনি অন্য শহরে আছেন এবং আমাকে দেখার জন্য বিমানবন্দরে আসতে হবে?
দাউদ ইবনে কারিম

29
প্রশ্নের উত্তর না হলেও HTTP 451 (আরএফসি 7725) এই প্রশ্নটি খুঁজে পাওয়া ভবিষ্যতের পাঠকদের পক্ষে কার্যকর হতে পারে। এটির মূল উদ্দেশ্যটি লিখিত অনুরোধ, পদক্ষেপ বা নিষেধাজ্ঞার (কপিরাইট, আদালতের আদেশ ইত্যাদি) কারণে সামগ্রীটি উপলভ্য নয় তা নির্দেশ করা
টাইজয়েড

34
নেটওয়ার্ক সংযোগ, প্রমাণীকরণ, অ্যাপ্লিকেশনটিতে অভ্যন্তরীণ কোনও ত্রুটি এবং সিনট্যাক্টিক্যালি বৈধ ইনপুটটিতে কোনও ত্রুটি বার্তা থাকা উচিত নয়। "আমরা এই ক্ষেত্রে আমাদের পরিষেবাটি দিচ্ছি না" দিয়ে আপনি প্রযুক্তিগত সমস্যাগুলি ছেড়ে দিয়ে ব্যবসায়িক সমস্যার মধ্যে চলে গেছেন, সুতরাং আমি নিশ্চিত না যে এইচটিটিপি ত্রুটি উপযুক্ত হবে। আমি মনে করি আপনার 200 এবং (অথবা 302 এবং এটিকে পুনর্নির্দেশ করা উচিত) "দুঃখিত আমাদের পরিষেবাটি আপনার অঞ্চলে পাওয়া যাচ্ছে না - তবে আমরা প্রসারিত করছি - 2019 এর শেষের দিকে ফিরে দেখুন!" বা বিপণন বিভাগ যা কিছু আসে না কেন।
ivanivan

7
আপনার ক্লায়েন্ট কম্পিউটারের অবস্থানের ভিত্তিতে (জিও আইপি?) বা আপনি যদি কোনও নির্দিষ্ট ব্যর্থ এপিআই অনুরোধের জন্য প্রতিক্রিয়া কোডের জন্য জিজ্ঞাসা করছেন (যেমন বই? ঠিকানা = 123_example_st_london) আপনি যদি এপিআইতে সমস্ত অ্যাক্সেস আটকাচ্ছেন কিনা তা এই প্রশ্ন থেকে অস্পষ্ট । অবস্থানটি কি ইনপুটটির অংশ, বা আপনার অন্য কোনও উপায়ে ক্লায়েন্টের অবস্থান রয়েছে?
বেন

উত্তর:


102

যে কোনও HTTP ত্রুটি কোড অনুপযুক্ত হবে। এইচটিটিপি দৃষ্টিকোণ থেকে কোনও ধরণের ত্রুটি বা সমস্যা নেই তাই এটি 200 ব্যাপ্তির মধ্যে কিছু হওয়া উচিত। আপনি আপনার কয়েকজন ব্যবহারকারীকে বিনয়ের সাথে জানিয়ে দিন যে তাদের কোনও ডকুমেন্ট পাঠিয়ে তাদের সার্ভিস করা হবে না। এবং এই সব ঠিক আছে।

ব্যবহারকারী আপনার অ্যাপ্লিকেশনটি ব্যবহার করতে সক্ষম হবে না । এটি আপনার ব্যবসায়িক যুক্তি দ্বারা একটি সচেতন সিদ্ধান্ত, কোনও বিপর্যয় নয়। এইচটিটিপি স্তরে সবকিছু হান্কি ডোরী।

সম্পাদন করা

দেখে মনে হচ্ছে আমরা এখানে যা যা দেখছি তা পুরানো স্কুল বনাম নতুন বিদ্যালয়ের সংঘর্ষ। যখন এইচটিটিপি ডিজাইন করা হয়েছিল, কোনও ওয়েব পরিষেবা ছিল না, সেখানে কোনও এসওএপি ছিল না, কোনও জেএসওএন নেই, আরইএসটি নীতি নেই। টিসিপি-র উপরে একটি প্রোটোকল হিসাবে এটি ইতিমধ্যে অ্যাপ্লিকেশন স্তরের (কাছাকাছি) বিবেচনা করা হয়েছিল এবং অনেকগুলি উচ্চ স্তরের স্থিতি কোডগুলি সংজ্ঞায়িত করা হয়েছিল। ওয়েবটি যখন সমৃদ্ধ, উচ্চ স্তরের পরিষেবা এবং "খামগুলি" পরিবহনের একটি সাধারণ উপায়ের জন্য ব্যবহার করা শুরু হয়েছিল, তখন ডিজাইনাররা একটি নতুন এবং ক্লিনার প্রোটোকল সংজ্ঞায়নের চেয়ে এইচটিটিপি হাই-জ্যাকড করেছিলেন, কেবল এইচটিটিপি সর্বব্যাপী ছিল বলেই।

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


56
এই যুক্তি দিয়ে, কোনও অ্যাপ্লিকেশন ত্রুটি 200 হিসাবে ফিরিয়ে দেওয়া উচিত And এবং সমস্ত অনুরোধগুলি পোষ্ট, এমনকি মুছে ফেলা হওয়া উচিত। এই পদ্ধতিটি এইচটিটিপিকে একটি অস্বচ্ছ ট্রান্সপোর্ট প্রোটোকল - টিসিপির মতো আচরণ করে। ওয়েব সার্ভিস এপিআইগুলিকে সাধারণত এইভাবে চিকিত্সা করা হয় না - তারা এপিআইয়ের জন্য এইচটিটিপি শব্দার্থবিজ্ঞান এবং স্ট্যান্ডার্ড ল্যাঙ্গুয়েজ উপার্জনের চেষ্টা করে। কাস্টম, নন-স্ট্যান্ডার্ড ত্রুটি কোড সহ 200 ফিরিয়ে দেওয়ার পরিবর্তে অননুমোদিতদের জন্য 401 ফেরত কেন না?
অব্নার শাহার-কাশতান

31
এই যুক্তি দ্বারা, কোনও অ্যাপ্লিকেশন কখনই 400 ব্যাপ্তির কোনও প্রতিক্রিয়া ফিরিয়ে আনবে না। এটি 40000 প্রতিক্রিয়াগুলির পরিসীমা যে শর্ত হিসাবে এটি স্পষ্টভাবে। এছাড়াও, আপনার প্রথম বাক্যটি কী ভবিষ্যতের সমস্ত উত্তরগুলির পাশাপাশি আপনার আগে পোস্ট হওয়া পোস্টগুলির ক্ষেত্রেও প্রযোজ্য?
দাউদ ইবনে কেরেম

31
আমাকে এখানে একমত হতে হবে যে এটি কেবল একটি সরল 200। ব্যবহারকারী একটি প্রশ্ন জিজ্ঞাসা করেছেন, আমরা এটি বুঝতে পেরেছি, আমরা সঠিক উত্তরটি জানি, এবং আমরা তাকে উত্তরটি সরবরাহ করেছি (যা "" না "হিসাবে ঘটে)। এইচটিটিপি জমিতে সমস্ত ভাল।
লি ড্যানিয়েল ক্রকার

8
হেই ... "এটি আসলে ত্রুটি নয়" থেকে "দ্রুত যাত্রা " তাই আপনি কি কিছুই কখনও ভুল হিসাবে দেখছেন না? "
এসভিডজেন

28
এই. "আপনি এমন কোনও ইউআরএল অ্যাক্সেস করার চেষ্টা করেছিলেন যা বিদ্যমান নেই" "আমাদের সংস্থা আপনার অঞ্চলে কাজ করে না" এর থেকে অনেক আলাদা। এইচটিটিপি দিয়ে কেবল একটির কিছু করার আছে।
সিজে ডেনিস

87

5xxত্রুটিগুলি হ'ল সার্ভার ত্রুটি - সার্ভারে কিছু ভুল হয়েছে। বিশেষত, একটি 503 নির্দেশ করে যে:

অস্থায়ী ওভারলোড বা নির্ধারিত রক্ষণাবেক্ষণের কারণে সার্ভারটি বর্তমানে অনুরোধটি পরিচালনা করতে অক্ষম

4xxত্রুটিগুলি ক্লায়েন্ট ত্রুটি - ক্লায়েন্ট একটি অনুরোধ করে যা সার্ভারটি অক্ষম বা পূরণ করতে রাজি নয়। বিশেষত, একটি 403 ইঙ্গিত করে

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

আমি তর্ক করব যে 503এটি পরিষ্কারভাবে ভুল, কারণ এটি কোনও অস্থায়ী সমস্যা নয় - আপনি সেই অঞ্চলে, সময়কালে অনুরোধগুলি সমর্থন করেন না। যুক্তিটি তৈরি করা যেতে পারে যে আপনি শেষ পর্যন্ত এই অঞ্চলটিকে সমর্থন করবেন বলে আশাবাদী তবে কোডটির উদ্দেশ্য হ'ল শিরোনামকে অন্তর্ভুক্ত করে যখন ক্লায়েন্ট আবার চেষ্টা করতে পারে। "6 মাস" অভিপ্রায়টি মেনে চলেন না।

403 একটি ভাল পছন্দ কারণ আপনার পরিষেবাটি নির্দিষ্ট কিছু লোকাল থেকে অনুরোধগুলি নিষিদ্ধ করে।


403 হল এমন ক্ষেত্রে রয়েছে যেখানে অ্যাক্সেস নিষিদ্ধ, এবং ক্লায়েন্ট এটি সম্পর্কে কিছুই করতে পারে না। তবে এই ক্ষেত্রে ক্লায়েন্টটি (আপনার ল্যাপটপ বা ফোন দিয়ে গাড়িতে উঠতে পারে), সুতরাং 403 অনুপযুক্ত।
gnasher729

2
@ gnasher729 4xx ত্রুটিগুলি ক্লায়েন্ট যে জিনিসগুলি ঠিক করতে সক্ষম হতে পারে তার জন্য এটি 403 টি অন্তর্ভুক্ত The (লিঙ্কযুক্ত) নির্দিষ্ট করে ক্লায়েন্টটি বিভিন্ন শংসাপত্রের সাথে পুনরায় চেষ্টা করতে পারে (ধরে নিলে শংসাপত্রগুলি ইস্যু ছিল)।
jaxad0127

22
@ gnasher729 403 এর অর্থ এই নয় যে মানুষ এ সম্পর্কে কিছুই করতে পারে না। এর অর্থ ব্রাউজার এটি সম্পর্কে কিছুই করতে পারে না। মানব সর্বদা একটি পাসওয়ার্ড রিসেট করতে পারে, প্রশাসকের সাথে কথা বলতে বা এই ক্ষেত্রে অন্য শহরে চলে যেতে পারে।
slebetman

1
@ gnasher729 ক্লায়েন্টটি ব্যবহারকারী নয়।
ক্যাপ্টেন ম্যান

10
5xx = ওফ আমাদের খারাপ, আমরা সমস্যাটি ঠিক করার সময় থাকুন। 4xx = আমরা দুঃখিত তবে নীতি দ্বারা আমরা এই মুহুর্তে আপনার অনুরোধটি সামঞ্জস্য করতে পারছি না। এখানে কেন ....
ক্যান্ডিড_আরঞ্জ

46

তাদের কেউই নয়।

আপনার এপিআই যদি ভালভাবে ডিজাইন করা থাকে তবে ইউআরএলটিতে শহরের নাম অন্তর্ভুক্ত থাকে, যেমন

http://example.com/API/Vienna/HailRide

অথবা

http://example.com/API/HailRide?city=Vienna

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

একবার আপনি এটি করেন, সঠিক উত্তর

http://example.com/API/SomeUnsupportedCity/HailRide

অথবা

http://example.com/API/HailRide?city=SomeUnsupportedCity

সুস্পষ্ট হয়ে ওঠে: 404 পাওয়া যায় নি : সুমসউস্পোর্টড সিটির কোনও যাত্রা শুরুর কোনও সংস্থান নেই।


6
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত: এপিআই ডিজাইনটি কেবল পুরানো সংখ্যাসূচক কোডগুলি মেনে চলার বিষয়ে নয়, এবং ভিপিএন ইত্যাদির দৃশ্যপটটি বেশ বাস্তবসম্মত।
এডোয়ার্ডো

10
আমি এই সঙ্গে মতানৈক্য আছে। ইউআরএলতে শহরের নাম অন্তর্ভুক্ত করা রাস্তায় সমস্ত ধরণের সমস্যার সৃষ্টি করতে পারে, কারণ এটি ক্লায়েন্টকে অবস্থানের উপর ভিত্তি করে একটি শহরের নাম নির্ধারণ করতে বাধ্য করে এবং ফলাফলটি আপনার পছন্দ নাও হতে পারে। উদাহরণস্বরূপ, আপনি লস অ্যাঞ্জেলেস বা বেভারলি পাহাড়? লন্ডন না ওয়েস্টমিনস্টার? ক্লায়েন্ট যদি মনে করেন এটি রিচার্ডসনে রয়েছে তবে আপনি কী করতে পারেন পুরো ডালাস অঞ্চল পরিবেশন করার জন্য একটি API? ক্লায়েন্টের পক্ষে কেবল পিকআপ / ড্রপঅফ অবস্থান সরবরাহ করা আরও ভাল ধারণা হবে; সার্ভার সেবার ক্ষেত্রের মধ্যে রয়েছে কিনা তা নির্ধারণ করতে পারে এবং সে অনুযায়ী সাড়া দেয়।
জাচ লিপটন

11
@ জ্যাচলিপটন আমি নিশ্চিত যে শহরের নামগুলি কেবল উদাহরণ ছিল এটি ওপির প্রকৃত ব্যবসায়ের নিয়মের উপর নির্ভর করে যে তারা কীভাবে "শহর" বা "অবস্থান" সংজ্ঞায়িত করে। এটি পাশাপাশি একটি সমন্বয় হতে পারে।
বার্গি

1
@ জ্যাচলিপটন নং, এখানে পয়েন্টটি পরিষেবাটি বুঝতে ক্লায়েন্টের আইপি ব্যবহার করা হচ্ছে না, এটি কেবল ভুল
এডোয়ার্ডো

3
@ অ্যাডিস আমি সম্মত হই যে ক্লায়েন্ট আইপি ব্যবহার করা অনেক কারণেই একটি খারাপ ধারণা। আমি বলছি যে / এপিআই / ভিয়েনা / হেইলরাইড এছাড়াও সমস্যার ঝুঁকির কারণ, এটির জন্য ক্লায়েন্টকে লোকেশনগুলি শহরের নামগুলিতে রূপান্তর করতে হবে, এবং এটি 1-টু-1 ম্যাপিং নয় যা কোনও সংস্থা ব্যবসা করে এমন অঞ্চলগুলির সাথে সম্পর্কিত।
জাচ লিপটন

26

এটি একটি বৃত্তাকার ছিদ্র / স্কোয়ার পেগ প্রশ্নের মতো মনে হচ্ছে। আপনার একমাত্র প্রতিক্রিয়াটির জন্য এইচটিটিপি কোড হওয়া দরকার কেন? এইচটিটিপি ত্রুটি কোডগুলি সম্ভবত সমস্ত ব্যবহারের ক্ষেত্রে আবরণ করতে পারে না।

আপনার সমস্ত API কলগুলিতে অতিরিক্ত মেসেজিং ফিরে আসা উচিত - অর্থাত্ একটি সামান্য JSON ত্রুটি বার্তা। তাদের একটি 403 দিন (কারণ সত্যই তাদের কাছে অবস্থানটি দেওয়া API টি ব্যবহার করার অনুমতি নেই) এবং আপনার পরামর্শ হিসাবে অতিরিক্ত বিট তথ্য ফিরিয়ে দিন।

আপনি যদি এটি না করেন তবে পরের বার আপনি যখন কোনও এসইওভি জিজ্ঞাসা করবেন কেবল তখনই এইচটিটিপি ত্রুটি কোডটি ফিরে আসতে হবে তবে কেবল একটি প্রাইস উপলব্ধ।


5
আপনার শেষ বাক্যটির জন্য +1। এটি সুন্দরভাবে যোগফল।
LoztInSpace

1
ভাল যে খুব স্পষ্টভাবে কিছু ধরণের 3xx পুনর্নির্দেশ করা প্রয়োজন। ;)
ব্র্যান্ডন মিন্টার

শেষ কেসটি সম্ভবত কোনও ধরণের 4XX প্রতিক্রিয়া সতর্ক করে: ব্যবহারকারী একটি অনুরোধ করেছিলেন যা সার্ভারটি পূরণ করতে পারে না। পছন্দটি যদি একরকম অবৈধ ইনপুট বা 404 অবস্থানের মধ্যে উপস্থিত না থাকে তবে এটি 400 হবে। যদিও এটি অনুসন্ধানের মাপদণ্ডে 200 হতে পারে এবং এর কোনও মিল নেই।
jpmc26

11

কয়েক বুদ্ধিমান।

403 নিষিদ্ধ, যে কারণে এরিক স্টেইন তার উত্তরে উল্লেখ করেছেন । আপনি অনুরোধের দ্বারা সরবরাহিত বিভিন্ন তথ্য ব্যবহার করতে পারেন ক্লায়েন্টটি কোথায় এবং কে সেই ক্লায়েন্ট এবং তা অনুরোধের ভিত্তিতে, সার্ভারটি অক্ষম বা প্রতিক্রিয়া জানাতে রাজি নয়।

যাইহোক, আমি 451 কে কিছু ক্ষেত্রে সম্ভাব্য রিটার্নের স্থিতি হিসাবে আইনী কারণগুলির জন্য অনুপলব্ধও রেখে দেব। এই স্থিতিটি আশা করে আপনি প্রাসঙ্গিক আইনটির একটি লিঙ্ক অন্তর্ভুক্ত করবেন (শিরোনামগুলিতে)। এটি বিশেষত সেই ক্ষেত্রে ক্ষেত্রে যেখানে ক্লায়েন্টের পক্ষে আপনার সংস্থানগুলি অ্যাক্সেস করা বৈধ নয় এবং ক্লায়েন্টের আরও সাধারণ ক্ষেত্রে অসমর্থিত অঞ্চল বা অঞ্চলে উপস্থিত নেই not

আমি স্ট্যাটাসগুলির 5XX সিরিজ এড়াতে চাই - এগুলি প্রায়শই সার্ভার সাইডের প্রযুক্তিগত সমস্যাগুলি নির্দেশ করে। এটি এখানে ক্ষেত্রে বলে মনে হয় না।


সম্ভবত এই ক্ষেত্রে কারণটি হ'ল যে গাড়িগুলি তাদের শহরে নেই সেগুলি সম্পর্কে তাদের জানাতে কোনও বুদ্ধি নেই। সুতরাং 451
সর্বাধিক 630

4
@ max630 আপনি প্রশ্ন থেকে এটি ধরে নিতে পারবেন না। 403 নিষিদ্ধ করা সম্ভবত সঠিক পছন্দ। তবে পরিষেবাটিতে যদি আইনী বিধিনিষেধ থাকে তবে তার পরিবর্তে আরও নির্দিষ্ট 451 টি ব্যবহার করা যেতে পারে। 451 প্রায়শই খুব নির্দিষ্ট ব্যবহারের ক্ষেত্রে 403 এর একটি সুনির্দিষ্ট সংস্করণ হিসাবে দেখা যায়, তাই এটি এনে বোধ করা বোধগম্য।
টমাসের মালিক

8
@ সর্বোচ্চ 30৩০ - এটি সম্পূর্ণরূপে সম্ভব যে 451 এখানে উপযুক্ত। অনেক এখতিয়ারে এই ধরণের পরিষেবার অপারেটরদের পরিষেবা সরবরাহের আগে আঞ্চলিক কর্তৃপক্ষের সাথে নিবন্ধিত হওয়া প্রয়োজন। ক্ষেত্রের বাইরে যদি তাদের উত্স উত্স থেকে থাকে তবে নির্দিষ্টভাবে অনুরোধগুলি প্রক্রিয়াকরণে আইনত তাদের নিষেধ করা যেতে পারে।
জুলে

5

যদি এই বিধিনিষেধ আইনগত কারণে হয় তবে উপযুক্ত HTTP ত্রুটি কোডটি এইচটিটিপি 451, "আইনী কারণে অনুপলব্ধ।"

এটি সাধারণত এমন সামগ্রীর ক্ষেত্রে ব্যবহৃত হয় যা ডিএমসিএ ক্রিয়াকলাপের কারণে বা হয়রানির প্রচারণার কারণে বা এই জাতীয় মামলাগুলির কারণে বাতিল করা হয়েছে, তবে প্রতিক্রিয়া সংজ্ঞাটির স্পিরিট এবং চিঠিটি বলে:

আইনি দাবির ফলস্বরূপ যখন রিসোর্স অ্যাক্সেস অস্বীকার করা হয় তখন এই দস্তাবেজটি ব্যবহারের জন্য একটি হাইপারটেক্সট ট্রান্সফার প্রোটোকল (এইচটিটিপি) স্থিতি কোড নির্দিষ্ট করে।

কোডটি নিজেই রে ব্র্যাডবেরির ফারেনহাইট 451 এর একটি উল্লেখ ।


3

লোকেরা প্রায়শই ভুলে যায় যে এইচটিটিপি স্থিতি কোডগুলি এক্সটেনসিবল।

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

https://tools.ietf.org/html/rfc2616#section-6.1.1

আপনি সর্বদা আপনার এপিআই এবং ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা ব্যবহারের জন্য 400 ব্যাপ্তিতে কেবল নিজের স্ট্যাটাস কোড তৈরি করতে পারেন।


হুম ... অনুরোধটিতে একটি Expect token;city="Albequerque"শিরোলেখ অন্তর্ভুক্ত করা দরকার হতে পারে না । তারপরে সবচেয়ে উপযুক্ত প্রতিক্রিয়া হবে 417, প্রত্যাশা ব্যর্থ হয়েছে। সরঞ্জামস.ইটিএফ.আর.এফ.এইচটিএম / আরএফসি 2616#section-10.4.18 অবশ্যই ধরে নেওয়া যে এটি একটি ওয়েব সেবার জন্য।
বার্লিন লরিটস্ক

হয়ত না প্রয়োজনীয় @BerinLoritsch, বরং একটি বিদ্যমান কোডে পরিস্থিতি মাপসই জোর চেষ্টা করার পরিবর্তে, এটা হতে পারে ভালো হতে মাত্র পান্ট এবং একটি কাস্টম এক ব্যবহার করতে।
রাবারডাক

0

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

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

যদি না কেউ এর জন্য একটি নতুন কোড স্বপ্ন দেখে থাকে, 403 বা 404 নিকটতম বলে মনে হয়।


অবশ্যই 5XX কোড নয়, কারণ এর দ্বারা বোঝা যায় যে পরে একই অনুরোধটি চেষ্টা করা সফল হতে পারে। একটি 4XX কোড অবশ্যই ক্লায়েন্টকে অনুরোধের কিছু না পরিবর্তিত (আবার এই ক্ষেত্রে "পরিষেবার অবস্থান" ক্ষেত্র) পরিবর্তন না করে আবার চেষ্টা না করার কথা বলে।
টবি স্পিড 15

0

আপনি যে কোডটি দিচ্ছেন তার সাথে আপনার ত্রুটির বর্ণনার সাথে মিল থাকা উচিত:

  • যদি আপনি বলেন Service not available in your area.তবে আপনার একটি দেওয়া উচিত 404কারণ আপনি দাবি করেন যে পরিষেবাটি উপলভ্য নয় ।

  • যদি আপনি বলেন You are not authorized for this service in your area.তবে আপনার একটি দেওয়া উচিত 403কারণ আপনি দাবি করেন যে কলার অনুমোদিত নয় ।

আমি দ্বিতীয় জন্য যেতে হবে।


6
404 প্রাপ্যতা সম্পর্কে নয় , এটি অস্তিত্ব সম্পর্কে । কিছু পরিস্থিতিতে কোনও পরিষেবা উপলব্ধ না থাকায় আপনি 404 টি প্রতিক্রিয়া সরবরাহ করবেন না যদি আপনি না চান যে লোকেরা বিশ্বাস করতে পারে যে এটির অস্তিত্ব নেই। একটি 404 প্রতিক্রিয়া এই পরিস্থিতির জন্য অর্থহীন হবে।
জুলে

@ জুলেস 403-র জন্য অনুমান অনুসারে (যা পুরানো হতে পারে): "সার্ভার যদি ক্লায়েন্টের কাছে এই তথ্যটি সরবরাহ করতে না চায় তবে স্থিতি কোড 404 (পাওয়া যায় না) পরিবর্তে ব্যবহার করা যেতে পারে। " জোর আমার mine সুতরাং যদি 403 ঠিক থাকে তবে 404 হবে, তবে প্রয়োজনীয় কারণে দেওয়া হয়নি।
জিমি জেমস

@ জিমি জেমস - হ্যাঁ, এটি নির্দিষ্টকরণের মধ্যে রয়েছে তবে এটি সত্যই খারাপ ধারণা কারণ এটি ডিবাগিংয়ের সমস্যাটিকে অত্যন্ত কঠিন করে তোলে। আপনি একটি API এ যা চান তা নয়।
জুলে

3
@ জুলস কিছু ক্ষেত্রে পরিষেবাটি বিদ্যমান নেই । অনেকগুলি ছোট ছোট স্টোর রয়েছে যা কেবলমাত্র আমার শহরে বিদ্যমান, তাই অন্য শহরে তাদের ঠিকানা জিজ্ঞাসা করার সঠিক প্রতিক্রিয়া হ'ল "বিদ্যমান নেই।"
অ্যান্ডি

কোনও সার্ভিস ইউআরএল পথ সম্পর্কে "এক্সটেনশান" সম্পর্কে এহম্ম কথা বলা হ'ল সর্বনিম্ন - দার্শনিক, স্পষ্টতার জন্য আপনি একবার কোনও পথ প্রকাশ করলে অবশ্যই আপনাকে উত্তর সরবরাহ করতে হবে, 403 এক্ষেত্রে কিছুটা মৌখিক বিবরণ সহ এই ক্ষেত্রে যাওয়ার উপায় is পরিস্থিতি.
এডোয়ার্ডো

0

এখানে একটি বর্তমান ইন্টারনেট-খসড়া রয়েছে (যা 31 ডিসেম্বর, 2018 এ শেষ হবে) আইনী কারণগুলির স্থিতির জন্য অনুপলব্ধ HTTP 451 এ সংশোধনী প্রস্তাব করে । খসড়াটি পরামর্শ দেয় যে 451 প্রতিক্রিয়াতে একটি geo-scope-blockশিরোনাম থাকা উচিত যা "[আইএসও .3166-1] এ সংজ্ঞায়িত আলফা -2 দেশ কোডের কমা-বিচ্ছিন্ন তালিকার সাথে মিলিত হওয়া উচিত"। তবে, খসড়াটিও উল্লেখ করে যে 451 কোডটি "অপারেটর দ্বারা নির্দিষ্ট নীতিমালার ভিত্তিতে কোনও অপারেটর দ্বারা অপারেটর দ্বারা নির্দিষ্ট করা (কোনও অপারেটরের উপর আইনী দাবি উত্থাপিত হওয়ার বিপরীতে) ব্যবহার করা উচিত নয়" ব্যবহার করা উচিত নয়।

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

সুতরাং, সর্বজনীন সমাধানের কোনও নেই, আপনার নিজের পরিস্থিতি সবচেয়ে ভাল বলে মনে করছেন এমন একটি আপনাকে বেছে নিতে হবে। তবে আপনি যে কোনওটি চয়ন করুন, প্রতিক্রিয়া সংস্থায় আসল সমস্যাটি নিশ্চিত করে নিশ্চিত করুন ।

আমি বলতে চাই যে কেবল একটি কাস্টম এইচটিটিপি স্থিতি কোড নির্দিষ্ট করার ক্ষেত্রে কোনও ভুল হবে না, যেমন রাবারডাক ইতিমধ্যে জবাব দিয়েছে । ৪০০-রেঞ্জের একটি কাস্টম স্থিতি কোডটি এমনকি সম্ভবত খুব ভাল কল হতে পারে, কারণ এটি অবশ্যই বিকাশকারীদের দৃষ্টি আকর্ষণ করবে যদি তারা "HTTP স্থিতি 499" এর মতো কিছু দেখেন see " ঠিক আছে তাই আমি আমার পাসওয়ার্ডটি ভুল পেয়েছি, এর পরিবর্তে অন্য কিছু চেষ্টা করি ", এবং এর ফলে সময় নষ্ট হয় as

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