এইচটিটিপি জিইটির প্রতিক্রিয়া হিসাবে 202 "স্বীকৃত" ফিরিয়ে দেওয়া কি ভুল?


90

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

সংস্থানটির জন্য প্রাপ্ত প্রথম জিইটি অনুরোধটি সার্ভারে গণনা শুরু করে। গণনাটি কয়েক সেকেন্ডের মধ্যে শেষ হলে, গণিত উপস্থাপনা ফিরে আসে is অন্যথায়, একটি 202 "স্বীকৃত" স্থিতি কোডটি ফিরে আসে এবং চূড়ান্ত প্রতিনিধিত্ব উপলব্ধ না হওয়া অবধি ক্লায়েন্টকে রিসোর্সটি পোল করতে হবে।

এই আচরণের কারণ নিম্নলিখিত: কোনও ফলাফল যদি কয়েক সেকেন্ডের মধ্যে পাওয়া যায়, তবে যত তাড়াতাড়ি সম্ভব এটি পুনরুদ্ধার করা দরকার; অন্যথায়, যখন এটি উপলব্ধ হয় তা গুরুত্বপূর্ণ নয়।

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

আমি জিটি অনুরোধের প্রতিক্রিয়া হিসাবে একটি ২০২ "স্বীকৃত" স্থিতি কোডটি ফেরত নিয়ে কিছু বিতর্ক আছে বলে আমি মনে করি, বাস্তবে আমি এর আগে কখনও দেখিনি, এবং এর সর্বাধিক স্বজ্ঞাত ব্যবহারটি অনিরাপদ পদ্ধতির প্রতিক্রিয়া হিসাবে, তবে আমি কখনই হয়নি এটি নিরুৎসাহিত করার মতো বিশেষ কিছু খুঁজে পেয়েছিল। তদুপরি, আমি কি সুরক্ষা এবং আদর্শক্ষেত্র উভয়ই সংরক্ষণ করছি না?

সুতরাং, লোকেরা এই পদ্ধতির বিষয়ে কী ভাববে?

সম্পাদনা : আমার এটি উল্লেখ করা উচিত এটি একটি তথাকথিত ব্যবসায়ের ওয়েব এপিআই এর জন্য - ব্রাউজারগুলির জন্য নয়।


4
আমি ব্যক্তিগতভাবে মনে করি এটি একটি ভালো, তাই না ঠিক একটি সংজ্ঞা 202। এটি ব্যবহারের ক্ষেত্রে খুব কমই আইএমএইচও হয় কারণ কয়েকটি ওয়েব ডেভলপকারীরা ব্রাউজার / ব্যবহারকারী-এজেন্ট মিথস্ক্রিয়ায় বেশি ব্যবহার হয় সে ক্ষেত্রে 202তারা কোনও দৃশ্যমান চিহ্ন না দেয় (তাদের একটি দিন 200এবং তারা খুশি হন)। ..)।
রিক্কেন

4
@ ব্যবহারকারী 359996, শুধু ব্যবহার করুন 200202এটি যা হওয়ার কথা তা হ'ল , তবে বাস্তবে লোকেরা আশা করে না 202
পেসারিয়ার

যদিও অনুশীলনে কার্যকর হতে 200 এর জন্য এটির প্রয়োজন।
রব

উত্তর:


66

যদি এটি একটি সু-সংজ্ঞায়িত এবং-ডকুমেন্টেড এপিআই এর জন্য হয় তবে যা ঘটছে তার জন্য সঠিকভাবে202 শোনাচ্ছে ।

যদি এটি সর্বজনীন ইন্টারনেটের জন্য হয় তবে আমি ক্লায়েন্টের সামঞ্জস্যতা সম্পর্কে খুব চিন্তিত হব। আমি অনেক if (status == 200)হার্ড কোডেড দেখেছি .... সেক্ষেত্রে আমি একটি ফিরে আসব 200

এছাড়াও, আরএফসি কোনও ইঙ্গিত দেয় না যে জিইটি অনুরোধের জন্য 202 ব্যবহার করা ভুল, অন্যদিকে এটি কোডের অন্যান্য বর্ণনায় (যেমন 200) স্পষ্টভাবে আলাদা করে তোলে।

প্রক্রিয়াজাতকরণের জন্য অনুরোধটি গ্রহণ করা হয়েছে, তবে প্রক্রিয়াজাতকরণ শেষ হয়নি।


17

আমরা এটি একটি সাম্প্রতিক অ্যাপ্লিকেশনটির জন্য করেছি, একটি ক্লায়েন্ট (কাস্টম অ্যাপ্লিকেশন, ব্রাউজার নয়) পোস্ট করেছে এবং সার্ভারটি একটি ইউআরআই দিয়ে 202 পোস্টে "জব" পোস্ট করবে - ক্লায়েন্টটি সেই ইউআরআই ব্যবহারের জন্য পোল ব্যবহার করবে ফলাফল - এটি করা হচ্ছে যা পুরোপুরি ফিট করে বলে মনে হচ্ছে।

আপনার পরিষেবা / এপিআই কীভাবে কাজ করে এবং 202 এর প্রতিক্রিয়ার অর্থ কী তা নথিভুক্ত করার জন্য এখানে সর্বাধিক গুরুত্বপূর্ণ বিষয়।


+1 আপনার মন্তব্যের জন্য ধন্যবাদ। ডকুমেন্টেশন সম্পর্কে ভাল পয়েন্ট। তবে দয়া করে আমার প্রশ্নের স্পষ্টত সম্পাদনাগুলি নোট করুন ("ফ্যাক্টরি" সন্ধান করুন)।
ব্যবহারকারী 359996

ঠিক আছে, আপনি অভ্যন্তরীণভাবে অনুরোধ করা ঠিক একই ইউআরআই পোল করতে চাইলে প্রতিক্রিয়াতে আপনি সেই ইউআরআই বাদ দিতে পারেন। (জাস্ট ডকুমেন্ট কিভাবে এই কাজ করা উচিত :-))
টি

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

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


12

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

অন্যদিকে পোষ্ট হ'ল সার্ভারের কোনও কিছুর স্থিতি পরিবর্তন করার অনুরোধ। একটি রেকর্ড sertোকান, একটি রেকর্ড মুছুন, একটি কাজ চালান, এরকম কিছু। 202 পোস্টের জন্য উপযুক্ত হবে যা ফিরে এসেছে তবে শেষ হয়নি, তবে সত্যিই কোনও জিইটি অনুরোধ নয়।

এগুলি সবই খুব পিউরিটান এবং বন্যের মধ্যে ভালভাবে অনুশীলন করা হয়নি, তাই আপনি সম্ভবত ২০২ ফিরিয়ে নিরাপদ G 200 জনের ফিরে আসা উচিত O পোস্ট শেষ না হলে 200 বা পুনরায় সম্পন্ন না হলে 202 দিতে পারে।

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html


4
খুব ভাল চিন্তাভাবনা কিন্তু এটি এখানে প্রয়োগ হয়েছে কিনা তা সম্পর্কে আমি নিশ্চিত নই: ওপি যা বলেছে তা থেকে এটি একটি উপযুক্ত জিইটি অনুরোধ বলে মনে হচ্ছে (এটি সার্ভারে কোনও কিছু পরিবর্তন করে না), এটি গণনা করতে আরও সময় নেয় এবং এতে যে ক্ষেত্রে, অন্য সময় আনতে হবে। হয়তো ওপি একটি অনুমোদনমূলক মন্তব্য দিতে পারে। এটি একটি এপিআই এর জন্য তাই পরিষ্কার ইন্টারফেসের জন্য "পিউরিটান" হওয়া ভাল
পেক্কা

ওহ, ছোঁয়া পেঁচা। আপনি ঠিক বলেছেন, জিইটি হ'ল উপায় way এবং আমি মনে করি না যে এইচটিটিপি এসসিসি সত্যিই জিইটি অ্যাকাউন্টে গ্রহণ করেছে যা প্রস্তুত নয়। সুতরাং তিনি যে কোনও উপায়ে যেতে পারেন
Dlongnecker

7
(এখন-অপ্রাসঙ্গিক) কর্তৃত্বমূলক মন্তব্য: হ্যাঁ, আমি এটিকে আদর্শবান হিসাবে দেখছি। সম্পদ তন্ন তন্ন রুপান্তরিত করা হয়েছে হচ্ছে না সৃষ্টি বরং এটা প্রতিনিধিত্ব এখনো নির্ণিত করা হয় নি।
ব্যবহারকারী 359996

4
এটা কোথায় বলে? এছাড়াও, আমি যদি 200 ফিরি, তবে ক্লায়েন্টের প্রত্যাশা হওয়া উচিত যে একটি প্রতিনিধিত্ব ফিরে এসেছে, তবে তা হয়নি।
ব্যবহারকারী 359996

4
আমি এটি আবার নিতে। 202 কেবল জিইটি বা পোষ্টের সাথে মিল নেই বলে মনে হয়। প্রোটোকলের দিকে তাকানোর সময় আমি যে মানসিকতার মধ্যে ছিলাম তা আমাকে 202 জিনিস তৈরি করে কেবল জিইটি অনুরোধের জন্যই বিদ্যমান। 202 আপনার উদ্দেশ্যে জরিমানা করা উচিত।
Dlongnecker

0

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

এটির জন্য যুক্তিটি এইচটিটিপি নিজেই আরএফসি-তে পাওয়া যেতে পারে (দয়া করে 503 প্রতিক্রিয়া কোডের বর্ণনাটি যাচাই করুন), পাশাপাশি আরও অসংখ্য সংস্থানগুলিতে on

অস্থায়ীভাবে অনুপলব্ধ পৃষ্ঠাগুলির জন্য দয়া করে HTTP স্থিতির কোডের সাথে তুলনা করুন । যদিও এই প্রশ্নটি একটি ভিন্ন ব্যবহারের ক্ষেত্রে, এটি আসলে এইচটিটিপি-র ঠিক একই বৈশিষ্ট্যের সাথে সম্পর্কিত।

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