আপডেট এবং মুছার জন্য এইচটিটিপি স্থিতি কোড?


1372

UPDATE( PUT) এবং DELETE(উদাহরণস্বরূপ পণ্য সফলভাবে আপডেট হয়েছে) জন্য আমার কোন স্থিতির কোড সেট করা উচিত ?

উত্তর:


2098

একটি পুট অনুরোধের জন্য: HTTP 200 বা HTTP 204 "সংস্থান সফলভাবে আপডেট হয়েছে" বোঝানো উচিত।

একটি জন্য মুছে দিন অনুরোধ: HTTP- র 200 বা HTTP- র 204 পরোক্ষভাবে উচিত "রিসোর্স সফলভাবে মোছা"। এইচটিটিপি 202 এছাড়াও ফিরিয়ে দেওয়া যেতে পারে যা বোঝায় যে নির্দেশটি সার্ভার দ্বারা গৃহীত হয়েছিল এবং "উত্স মুছে ফেলার জন্য চিহ্নিত করা হয়েছিল"।

PUT

যদি কোনও বিদ্যমান সংস্থান সংশোধন করা হয়, তবে 200 (ঠিক আছে) বা 204 (কোনও সামগ্রী নেই) প্রতিক্রিয়া কোডগুলি> অনুরোধটির সফল সমাপ্তি নির্দেশ করতে পাঠানো উচিত be

মুছে ফেলা

একটি সফল প্রতিক্রিয়া 200 (ঠিক আছে) হওয়া উচিত যদি প্রতিক্রিয়াটির স্থিতি বর্ণনা করে এমন একটি সত্তা অন্তর্ভুক্ত থাকে, 202 (স্বীকৃত) যদি ক্রিয়াটি এখনও কার্যকর করা হয়নি, বা 204 (কোনও বিষয়বস্তু নেই) যদি পদক্ষেপ কার্যকর করা হয়েছে তবে প্রতিক্রিয়াটি অন্তর্ভুক্ত না একটি সত্তা.

উত্স: W3.org: HTTP / 1.1 পদ্ধতির সংজ্ঞা

HTTP 200 ঠিক আছে: সফল HTTP অনুরোধগুলির জন্য স্ট্যান্ডার্ড প্রতিক্রিয়া। প্রকৃত প্রতিক্রিয়া ব্যবহৃত অনুরোধ পদ্ধতির উপর নির্ভর করবে।

এইচটিটিপি 204 কোনও সামগ্রী নেই: সার্ভারটি সফলভাবে অনুরোধটি প্রক্রিয়া করেছে, কিন্তু কোনও সামগ্রী ফিরে দিচ্ছে না

উত্স: HTTP স্থিতি কোডগুলির তালিকা: 2XX সাফল্য


40
খুব দরকারী পোস্ট! তবে আমি ভাবছি যে HTTP স্থিতি কোডটি কী হওয়া উচিত তা হ'ল ক্লায়েন্টের পাঠানো অনুরোধটি বৈধ (ডিলিট মাইসাইট / সত্তা / 123 ) এবং মুছার সত্তাটি বিদ্যমান নেই।
মার্টিন

64
@Martin: সেই ক্ষেত্রে, সেবা একটি HTTP ফেরত পাঠাবেন 404. কঠোরভাবে বলতে, একটি মুছে ফেলতে অথবা কোন অস্তিত্ব নেই যে একটি রিসোর্সে একটি পেতে অনুরোধ না একটি "বৈধ" অনুরোধ - অর্থাত। ক্লায়েন্টকে সেই অনুরোধটি পুনরায় চেষ্টা করা উচিত নয় কারণ এটি কখনই সফল হয় না ... এইচটিটিপি প্রোটোকল 2 টি বিভাগের সমস্যাগুলি সংজ্ঞায়িত করে - 4XX স্থিতি কোড সহ এমন ক্লায়েন্টকে পুনরায় চেষ্টা করার আগে ক্লায়েন্টকে অনুরোধটি পরিবর্তন করতে হবে এবং 5 xxx স্থিতি রয়েছে কোড, যা নির্দেশ করে যে পরিষেবাটি সমস্যার মধ্যে পড়ে এবং ক্লায়েন্টকে / পরিবর্তন না করে একই অনুরোধ অনুরোধটি আবার চেষ্টা করতে পারে।
ড্যানিয়েল ভ্যাসাল্লো

17
@ জেফমার্টিন এটি ব্যবহারকারীর দৃষ্টিকোণ থেকে হতে পারে, তবে যতক্ষণ না সার্ভারের সাথে সম্পর্কিত, যদি সংস্থানটি না থাকে তবে সার্ভারটি 404 ফিরে আসতে পারে।
র্যান্ডলফো

17
@ র্যান্ডলফো, আপনি একবার বা একাধিকবার অপারেশন চালিয়ে যাবেন না কেন আইডেম্পোটেন্স একই ফলাফল পেতে পারে। ক্লায়েন্ট আপনাকে রিসোর্সটি মুছে ফেলা হয়েছে তা নিশ্চিত করতে জিজ্ঞাসা করছে। 404 ফিরিয়ে লাভ কী? কেন এটি কোনওভাবেই জানা দরকার? এখন ক্লায়েন্ট লজিকের একটির পরিবর্তে দুটি পৃথক প্রতিক্রিয়া কোড পরিচালনা করতে হবে।
গিলি

26
@ গিলি: সম্ভবত উইকি আরও ভালভাবে ব্যাখ্যা করবে: PUT এবং DELETE পদ্ধতিগুলি
র্যান্ডলফো

857

সংক্ষিপ্ত উত্তর: পুট এবং মোছা উভয়ের জন্যই আপনার 200 (ঠিক আছে) বা 204 (কোনও সামগ্রী নেই) প্রেরণ করা উচিত।

দীর্ঘ উত্তর: এখানে একটি সম্পূর্ণ সিদ্ধান্ত ডায়াগ্রাম (প্রশস্ত করতে ক্লিক করুন)।

HTTP 1.1 সিদ্ধান্ত ডায়াগ্রাম

সূত্র: https://github.com/for-GET/http-decision-diagram


37
চিত্রটি আশ্চর্যজনক। মুদ্রণের জন্য কি উচ্চতর রেজোলিউশন সংস্করণ রয়েছে?
কিকি

1
বিদ্যমান সংস্থার POST প্রসঙ্গে, অন্য একটি SO আলোচনা ( স্ট্যাকওভারফ্লো / প্রশ্ন / 3825990/… ) সামগ্রী সংযোজনের পরিবর্তে 409 সংঘাত বা 302 পাওয়া প্রেরণের পরামর্শ দেয়।
কোপ্পোর

7
যদি আমি মুছে ফেলার পরে 204 এবং 200 এর প্রতিক্রিয়াটি উল্টানো উচিত তবে আমি আগ্রহী এবং যদি সেগুলি সঠিক হয় তবে কেন? ডিলিট করলো? -> প্রতিক্রিয়া একটি সত্তা অন্তর্ভুক্ত? -> হ্যাঁ -> 204 সামগ্রী নেই; না -> 200 ওকে
গণনা

62
চিত্রটির আপডেট সংস্করণটি এখানে রয়েছে: Raw.github.com/for-GET/http-decision-diagram/master/httpdd.png
জাইউস

19
এটি প্যাচ অনুপস্থিত।
doremi

151

এখানে কিছু টিপস:

মুছে ফেলা

  • 200 (যদি আপনি প্রতিক্রিয়াতে কিছু অতিরিক্ত ডেটা প্রেরণ করতে চান) বা 204 (প্রস্তাবিত)

  • 202 অপারেশন মুছে ফেলা এখনও প্রতিশ্রুতিবদ্ধ হয় নি।

  • যদি মুছে ফেলার মতো কিছু না থাকে, 204 বা 404 ব্যবহার করুন (মুছে ফেলা অপারেশনটি আদর্শবান, ইতিমধ্যে মুছে ফেলা আইটেমটি মুছে ফেলা অপারেশন সফল , তাই আপনি 204 ফিরে আসতে পারেন , তবে এটি সত্য যে আদর্শবান্ধব অগত্যা একই প্রতিক্রিয়া বোঝায় না)

অন্যান্য ত্রুটি:

  • 400 খারাপ অনুরোধ ( ত্রুটিযুক্ত সিনট্যাক্স বা একটি খারাপ ক্যোয়ারী আশ্চর্যজনক তবে সম্ভব)।
  • 401 অননুমোদিত প্রমাণীকরণ ব্যর্থতা
  • 403 নিষিদ্ধ : অনুমোদন ব্যর্থতা বা অবৈধ অ্যাপ্লিকেশন আইডি।
  • 405 অনুমোদিত নয় । অবশ্যই।
  • 409 রিসোর্স সংঘাত জটিল সিস্টেমে সম্ভব হতে পারে।
  • আর 501 , 502 এরর ক্ষেত্রে।

PUT

আপনি যদি কোনও সংকলনের উপাদান আপডেট করে থাকেন

  • 200/204 উপরের মুছে ফেলার মতো একই কারণে।
  • 202 যদি অপারেশনটি এখনও চালু না করা হয়।

রেফারেন্সকৃত উপাদানটি বিদ্যমান নেই:

  • পুট 201 হতে পারে (যদি আপনি উপাদানটি তৈরি করেন কারণ এটি আপনার আচরণ)
  • 404 যদি আপনি পুটের মাধ্যমে উপাদান তৈরি করতে না চান।

  • ৪০০ টি খারাপ অনুরোধ (ডিলিটের ক্ষেত্রে ত্রুটিযুক্ত সিনট্যাক্স বা খারাপ কোয়েরি বেশি সাধারণ)।

  • 401 অননুমোদিত
  • 403 নিষিদ্ধ : প্রমাণীকরণ ব্যর্থতা বা অবৈধ অ্যাপ্লিকেশন আইডি।
  • 405 অনুমোদিত নয় । অবশ্যই।
  • 409 রিসোর্স দ্বন্দ্ব জটিল সিস্টেমে যেমন মুছে ফেলা সম্ভব হতে পারে।
  • 422 অপ্রয়োজনীয় সত্তা এটি একটি "খারাপ অনুরোধ" (যেমন দূষিত XML / JSON) এবং অবৈধ ক্ষেত্রের মানগুলির মধ্যে পার্থক্য করতে সহায়তা করে
  • আর 501 , 502 এরর ক্ষেত্রে।

7
এই উত্তরটি প্রায় সম্পূর্ণ দুটি বৃহত উদ্ধৃতি দ্বারা তৈরি করা হয়েছে, তবে কোনও অ্যাট্রিবিউট নেই। কোথা থেকে উদ্ধৃতি দিচ্ছেন?
কোয়ান্টিন

204 কি PUT অনুরোধের জন্য ফিরে আসার উপযুক্ত স্থিতি, যদি রাষ্ট্র কার্যকরভাবে পরিবর্তন না করা হয়? উদাহরণস্বরূপ, আপনি কোনও ব্যবহারকারীকে নিষ্ক্রিয় করতে বলছেন তবে ব্যবহারকারী ইতিমধ্যে নিষ্ক্রিয়।
Г И І И

PUT অনুরোধটি আদর্শবান, সুতরাং আপনি একটি 204 ফিরিয়ে দিতে পারেন, কারণ সিস্টেমে অবজেক্টটি পরিবর্তিত হয়েছে। পুট প্যাচ নয়, তাই আপনি কোন ক্ষেত্রটি পরিবর্তন করতে চান তা নিশ্চিত নন। আপনি কোনও 501 - 502 ফেরত পাঠাতে পারেন, যদি আপনার নকশাটিতে অনুরোধে থাকা অবজেক্টটি ঠিক একইরকম ছিল কিনা তা জানা দরকার তবে ... আমি সত্যিই এটি পছন্দ করি না .. আমি চাই 204 অথবা আপনি যদি চান আরও ক্ষেত্র পরিবর্তন না করেই কোনও ব্যবহারকারীকে নিষ্ক্রিয় করুন, সম্ভবত আপনি প্যাচচ ব্যবহার করতে পারেন।
আলফোনসো টিয়েন্ডা

1
আমি এইচটিটিপি 422 অপ্রয়োজনীয় সত্তা যুক্ত করব। এটি একটি "খারাপ অনুরোধ" (যেমন: বিকৃত XML / JSON) এবং অবৈধ ক্ষেত্রের মানগুলির মধ্যে পার্থক্য করতে সহায়তা করে।
vdboor


10

200 এবং 204 ছাড়াও, 205 (সামগ্রী পুনরায় সেট করুন) একটি বৈধ প্রতিক্রিয়া হতে পারে।

সার্ভারটি অনুরোধটি পূরণ করেছে এবং ব্যবহারকারী এজেন্ট সেই দস্তাবেজ দর্শনের পুনরায় সেট করতে হবে যার ফলে অনুরোধটি প্রেরণ করা হয়েছিল ... [উদাহরণস্বরূপ] যে ফর্মটিতে ইনপুট দেওয়া হয়েছে তা সাফ করা উচিত।


6

যেহেতু প্রশ্নটি ডিলিট করে " 200 বনাম 204 " ফিরিয়ে দেওয়া উচিত কিনা তা বিবেচনা করে বিবেচনা করা উচিত যে কিছু লোক লিঙ্ক সহ কোনও সত্তা ফিরিয়ে দেওয়ার পরামর্শ দেয় যাতে অগ্রাধিকার 200 হয়

"204 (কোন বিষয়বস্তু) ফিরে পরিবর্তে এপিআই সহায়ক হওয়া উচিত এবং যেতে করার জন্য প্রস্তাবিত এই উদাহরণে আমি মনে করি এক সুস্পষ্ট প্রদান লিঙ্কে হয়।" 'Somewhere.com/container/' (বিয়োগ 'রিসোর্স') "- যে ধারকটি থেকে ক্লায়েন্টটি কেবল একটি সংস্থান মুছে দিয়েছে Perhaps সম্ভবত ক্লায়েন্ট আরও সংস্থানগুলি মুছতে চায়, তাই এটি সহায়ক লিঙ্ক হবে। "

http://blog.ploeh.dk/2013/04/30/rest-lesson-learned-avoid-204-responses/

যদি কোনও ক্লায়েন্টের 204 টি প্রতিক্রিয়া দেখা দেয় তবে তা ছেড়ে দিতে পারে, API- র এন্ট্রি পয়েন্টে যেতে পারে, বা পূর্ববর্তী উত্সটিতে ফিরে গিয়ে তা ফিরে যেতে পারে। দুটি বিকল্পই বিশেষত ভাল নয়।

ব্যক্তিগতভাবে আমি বলব না 204 ভুল (উভয়ই লেখকই করেন না; তিনি বলেন "বিরক্তিকর") কারণ ক্লায়েন্টের পক্ষে ভাল ক্যাশে করার অনেক সুবিধা রয়েছে। সেরা হয় যে কোনও উপায়ে ধারাবাহিক হওয়া।


6

এখানে কিছু স্ট্যাটাস কোড রয়েছে, যা আপনার নিজের জ্ঞানের জন্য জানা উচিত।

1XX তথ্য প্রতিক্রিয়া

  • 100 চালিয়ে যান
  • 101 সুইচিং প্রোটোকলগুলি
  • 102 প্রক্রিয়াজাতকরণ
  • 103 প্রাথমিক ইঙ্গিত

2XX সাফল্য

  • 200 ঠিক আছে
  • 201 তৈরি হয়েছে
  • 202 স্বীকৃত
  • 203 অননুমোদিত তথ্য
  • 204 কোনও সামগ্রী নেই
  • 205 সামগ্রী পুনরায় সেট করুন
  • 206 আংশিক সামগ্রী
  • 207 মাল্টি-স্ট্যাটাস
  • 208 ইতিমধ্যে প্রতিবেদন করা হয়েছে
  • 226 আইএম ব্যবহৃত

3 এক্সএক্স পুনর্নির্দেশ

  • 300 একাধিক পছন্দ
  • 301 স্থায়ীভাবে সরানো হয়েছে
  • 302 পাওয়া গেছে
  • 303 অন্যান্য দেখুন
  • 304 সংশোধিত নয়
  • 305 প্রক্সি ব্যবহার করুন
  • 306 সুইচ প্রক্সি
  • 307 অস্থায়ী পুনঃনির্দেশ
  • 308 স্থায়ী পুনর্নির্দেশ

4XX ক্লায়েন্ট ত্রুটি

  • 400 খারাপ অনুরোধ
  • 401 অননুমোদিত
  • 402 অর্থ প্রদানের প্রয়োজন
  • 403 নিষিদ্ধ
  • 404 পাওয়া যায় নি
  • 405 পদ্ধতি অনুমোদিত নয়
  • 406 গ্রহণযোগ্য নয়
  • 407 প্রক্সি প্রমাণীকরণ প্রয়োজনীয়
  • 408 অনুরোধের সময়সীমা শেষ
  • 409 সংঘাত
  • 410 গেছে
  • 411 দৈর্ঘ্য প্রয়োজন
  • 412 পূর্বশর্ত ব্যর্থ হয়েছে
  • 413 পেডলোড খুব বড়
  • 414 ইউআরআই খুব দীর্ঘ
  • 415 অসমর্থিত মিডিয়া প্রকার
  • 416 পরিসীমা সন্তোষজনক নয়
  • 417 প্রত্যাশা ব্যর্থ হয়েছে
  • 418 আমি একটি চাঁচা
  • 420 পদ্ধতি ব্যর্থতা
  • 421 ভুল নির্দেশিত অনুরোধ
  • 422 অপ্রয়োজনীয় সত্তা
  • 423 লক করা আছে
  • 424 ব্যর্থতা নির্ভরতা
  • 426 আপগ্রেড প্রয়োজনীয়
  • 428 পূর্ব শর্ত প্রয়োজন
  • 429 অনেক বেশি অনুরোধ
  • 431 খুব বড় শিরোনাম ক্ষেত্রগুলির অনুরোধ
  • 451 আইনী কারণে অনুপলব্ধ

5XX সার্ভার ত্রুটি

  • 500 অভ্যন্তরীণ সার্ভার ত্রুটি
  • 501 প্রয়োগ করা হয়নি
  • 502 খারাপ গেটওয়ে
  • 503 পরিষেবা অনুপলব্ধ
  • 504 গেটওয়ে টাইমআউট
  • 505 এইচটিপি সংস্করণ সমর্থিত নয়
  • 506 ভেরিয়েন্ট এছাড়াও আলোচনা
  • 507 অপর্যাপ্ত সঞ্চয়স্থান
  • 508 লুপ সনাক্ত হয়েছে
  • 510 প্রসারিত নয়
  • 511 নেটওয়ার্ক প্রমাণীকরণ প্রয়োজন

3

জুন 2014-এ আরএফসি 7231 আরএফসি 2616 অচল করে। আপনি যদি HTTP- র মাধ্যমে REST করছেন তবে আরএফসি 7231 GET, PUT, POST এবং DELETE থেকে ঠিক কী আচরণ প্রত্যাশিত তা বর্ণনা করে


-1

যখন কোনও সংস্থান পরিবর্তন করা হয়, প্রতিক্রিয়া কোডটি 200 ("ঠিক আছে") হওয়া উচিত । যদি রিসোর্স স্টেটটি এমনভাবে পরিবর্তিত হয় যা ইউআরআইকে সংস্থানটিতে পরিবর্তন করে (উদাহরণস্বরূপ, একটি ব্যবহারকারীর অ্যাকাউন্টের নাম পরিবর্তন করা হয়), প্রতিক্রিয়া কোডটি 301 ("স্থায়ীভাবে সরানো") হয় এবং অবস্থানের শিরোনামটি নতুন ইউআরআই সরবরাহ করতে পারে।

যখন কোনও বস্তু মোছা হয়, প্রতিক্রিয়া কোডটি 200 ("ঠিক আছে") হওয়া উচিত।

আরও বিশদের জন্য নীচের লিঙ্কটি অনুসরণ করুন - বিশ্রামের জন্য স্থিতি কোড

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