'অনুরোধের সীমাটি পৌঁছেছে' এর জন্য প্রস্তাবিত HTTP REST স্থিতি কোড


43

আমি একটি আরএসইএস সার্ভিসের জন্য একত্রিত করছি, যার একটি অংশ ব্যবহারকারীদের পরিষেবা-বিস্তৃত এবং বিভিন্ন গোষ্ঠীগুলিতে বা পৃথক, সংস্থানগুলিতে থ্রোটল করার ক্ষমতা যুক্ত করবে। সমানভাবে, এগুলির জন্য সময়-আউটগুলি সম্পদ / গোষ্ঠী / পরিষেবা প্রতি কনফিগারযোগ্য হবে।

আমি কেবল এইচটিটিপি 1.1 স্পেসটি দেখছি এবং সিদ্ধান্ত নেওয়ার চেষ্টা করছি যে আমি কীভাবে কোনও ক্লায়েন্টের সাথে যোগাযোগ করব যে একটি অনুরোধ পূরণ হবে না কারণ তারা তাদের সীমাতে পৌঁছেছে।

প্রাথমিকভাবে আমি অনুমান করেছি যে ক্লায়েন্ট কোডটি একটি 403 - Forbiddenছিল, তবে এটি অনুমান থেকে:

অনুমোদন সাহায্য করবে না এবং অনুরোধটির পুনরাবৃত্তি করা উচিত নয়

আমাকে বিরক্ত করল

এটি প্রকৃতপক্ষে উপস্থিত হয় যা 503 - Service Unavailableব্যবহার করা ভাল - যেহেতু এটি Retry-Afterশিরোনাম ব্যবহারের মাধ্যমে পুনরায় চেষ্টা করার সময় যোগাযোগের অনুমতি দেয় ।

এটি সম্ভব যে ভবিষ্যতে আমি ইকমার্সের মাধ্যমে আরও 'অনুরোধ' ক্রয়ের সমর্থন করতে চেয়েছি (এই ক্ষেত্রে ক্লায়েন্ট কোডটি 402 - Payment Requiredচূড়ান্ত করা গেলে ভাল লাগবে !) - তবে আমি অনুমান করেছি যে এটিও সমানভাবে একটি 503 প্রতিক্রিয়াতে চেপে যেতে পারে।

আপনি কোনটি আমার ব্যবহার করা উচিত বলে মনে করেন? বা অন্য কেউ আমি বিবেচনা করা হয়নি?

উত্তর:


77

429 অনেক বেশি অনুরোধ

ব্যবহারকারী নির্ধারিত সময়ে প্রচুর অনুরোধ প্রেরণ করেছেন। হার সীমাবদ্ধকরণের স্কিমগুলির সাথে ব্যবহারের উদ্দেশ্যে tend এই কোডটি আরএফসি 6585 অতিরিক্ত HTTP স্থিতি কোডগুলিতে গৃহীত হয়েছে ।

http://i.stack.imgur.com/Y84Lj.jpg

   The 429 status code indicates that the user has sent too many
   requests in a given amount of time ("rate limiting").

   The response representations SHOULD include details explaining the
   condition, and MAY include a Retry-After header indicating how long
   to wait before making a new request...

   Note that this specification does not define how the origin server
   identifies the user, nor how it counts requests.  For example, an
   origin server that is limiting request rates can do so based upon
   counts of requests on a per-resource basis, across the entire server,
   or even among a set of servers.  Likewise, it might identify the user
   by its authentication credentials, or a stateful cookie.

   Responses with the 429 status code MUST NOT be stored by a cache...

দুর্দান্ত লাগছে - আমি এটি মনে রাখব! এটি বিনামূল্যে বিড়াল সঙ্গে আসে না? বা এগুলি কি প্রোটোকলের একটি এক্সটেনশন?
আন্দ্রেস জোল্টান

3
এইচটিটিপি স্থিতি বিড়াল - আপনার সমস্ত স্থিতি প্রয়োজনের জন্য: flickr.com/photos/girliemac/sets/72157628409467125
শান ম্যাকমিলান

1
যে অফিসে প্রায় পুরো হাসি এবং করতালিতে গেছে - প্রতিভা!
আন্দ্রেস জোল্টান

আমি শেষ অবধি একটি 429 নিয়ে গিয়েছিলাম - এটি খসড়া অনুচ্ছেদে রয়েছে তবে আমি গুরুতরভাবে সন্দেহ করি যে এটি অন্য কোনও কিছুর জন্য ব্যবহার করা হবে।
আন্দ্রেস জোল্টান

7

কিছুটা হলেও আপনি কোডগুলি দিয়ে আপনার পছন্দমতো করতে নির্দ্বিধায়, তবে আমি সম্মত হব যে আপনি ব্যবহার করতে পারেন 503বা আপনি যদি চান তবে 402কারও কাছে অভিযোগ করা সম্ভব না হয়ে আপনি জিনিসগুলি ভঙ্গ করছেন।

সম্পাদনা: একজন পিউরিস্ট বলতে পারে যে আপনার 503 দিয়ে শুরু করা উচিত, তারপরে পেমেন্ট করা সম্ভব হলে একবার স্যুইচ করুন।


মন্তব্যগুলিতে এটিতে একটি দুর্দান্ত সংযোজন:

একটি 4XX ক্লায়েন্ট কর্তৃক একটি ত্রুটি নির্দেশ করে যা তাদের দ্বারা নির্দিষ্ট পদক্ষেপ গ্রহণের দ্বারা স্থির করা যায়, যখন 5Xxx সার্ভারে এমন কোনও সমস্যা নির্দেশ করে যা ক্লায়েন্ট সমাধান করতে সহায়তা করতে পারে না। সুতরাং আপনার ক্ষেত্রে, 4XXX আরও উপযুক্ত, কারণ (i) সার্ভারটি ঠিক যেমনটি আচরণ করা হচ্ছে, এবং (ii) ক্লায়েন্টটি ত্রুটি "সমাধান" করতে পারে হয় হয় ধীরে ধীরে বা আরও ক্রেডিট কিনে। সঠিক রেজোলিউশনটি 429 প্রতিক্রিয়াটির শরীরে নির্দেশ করা যেতে পারে। - মাইক চেম্বারলাইন 7 ঘন্টা আগে


503! 503! 503! সীমাতে পৌঁছেছে, পরবর্তী কলটি নিষিদ্ধ। সরল এবং সরল ...
ইয়ানিস

@ ইয়ানিসরিজোস: আহ, তবে একবার অর্থ প্রদানের পরে তা নিষিদ্ধ নয়!
মার্সিন

1
ত্রুটি কোডটি একক অনুরোধের ফলাফলকে উপস্থাপন করে। যদি অর্থ প্রদান করা হয়, তবে পরবর্তী অনুরোধে এটি যথারীতি ব্যবসা ... যদি আপনি আচরণটি নথিভুক্ত করেন তবে আমার দ্বারা এটি ঠিক আছে। অথবা আপনি কেবল একটি ত্রুটি বার্তা সহ 200 ফিরিয়ে দিতে পারেন। তবে তা সুন্দর নয়। যদিও কেউ কেউ বলতে পারেন ব্যবসায়ের যুক্তির জন্য এইচটিটিপি ত্রুটি কোডগুলি ব্যবহার করা সুন্দর নয়। আহ্, আমি ব্যক্তিগতভাবে 503 নিয়ে যাব, এই মুহুর্তে পরিষেবা উপলব্ধ নেই - যতক্ষণ না 402 সাধারণত সমর্থিত হয়।
ইয়ানিস

@ ইয়্যানিসরিজস (এবং মার্সিন) - আপনার মন্তব্যের জন্য ধন্যবাদ - আমি অনুভব করেছি যে ৫০৩ সবচেয়ে ভাল ছিল; যখন এইচটিটিপি স্থিতি কোডগুলি ব্যবহার করার কথা আসে তখনই বিশ্রামপ্রবণ প্রকৃতির প্রয়োগগুলি প্রায়শই পশমী হয়ে উঠতে পারে understanding এই সম্পর্কে আমার ব্যক্তিগত দৃষ্টিভঙ্গি হ'ল প্রোটোকল যা সরবরাহ করে তা ব্যবহার না করা (যা আসলে খুব বিরল)। এই ক্ষেত্রে, এটি অবশ্যই!
আন্দ্রেস জোল্টান

5
একটি 4xx ক্লায়েন্ট কর্তৃক একটি ত্রুটি নির্দেশ করে যা তাদের দ্বারা নির্দিষ্ট পদক্ষেপ গ্রহণের দ্বারা স্থির করা যায়, যখন 5Xxx সার্ভারে এমন কোনও সমস্যা নির্দেশ করে যা ক্লায়েন্ট সমাধান করতে সহায়তা করতে পারে না। সুতরাং আপনার ক্ষেত্রে, একটি 4XX বেশি উপযুক্ত, কারণ (i) সার্ভারটি ঠিক যেমনটি করা উচিত ঠিক তেমন আচরণ করছে, এবং (ii) ক্লায়েন্টটি ধীরে ধীরে বা আরও ক্রেডিট কিনে ত্রুটিটি "সমাধান" করতে পারে। সঠিক রেজোলিউশনটি 429 প্রতিক্রিয়াটির শরীরে নির্দেশ করা যেতে পারে।
মাইক চেম্বারলাইন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.