යාවත්කාලීන කිරීම සහ මකා දැමීම සඳහා HTTP තත්ව කේතය?


1392

UPDATE( PUT) සහ DELETE(උදා: නිෂ්පාදන සාර්ථකව යාවත්කාලීන කරන ලද) සඳහා මා සැකසිය යුත්තේ කුමන තත්ව කේතයද ?

Answers:


2139

සඳහා දාන්න ඉල්ලීම: HTTP 200 හෝ HTTP 204 "සාර්ථකව යාවත්කාලීන සම්පත්" අදහස් කළ යුතුය.

සඳහා මකා ඉල්ලීම: HTTP 200 හෝ HTTP 204 අදහස් කළ යුතුය "සම්පත් සාර්ථකව මකා". HTTP 202 ද ආපසු ලබා දිය හැකි අතර එයින් ඇඟවෙන්නේ සේවාදායකයා විසින් උපදෙස් පිළිගෙන ඇති අතර "මකාදැමීම සඳහා සම්පත සලකුණු කරන ලදි" යන්නයි.

පුට්

පවත්නා සම්පතක් වෙනස් කර ඇත්නම්, 200 (හරි) හෝ 204 (අන්තර්ගත නැත) ප්‍රතිචාර කේත> ඉල්ලීම සාර්ථකව සම්පූර්ණ කිරීම දැක්වීමට යැවිය යුතුය.

මකන්න

සාර්ථක ප්‍රතිචාරයක් තත්ත්වය විස්තර කරන ආයතනයක් ඇතුළත් නම් 200 (හරි) විය යුතුය, ක්‍රියාව තවමත් ක්‍රියාත්මක කර නොමැති නම් 202 (පිළිගනු ලැබේ), හෝ ක්‍රියාව ක්‍රියාත්මක කර ඇත්නම් 204 (අන්තර්ගතයක් නැත) නමුත් ක්‍රියාව ඇතුළත් නොවේ වස්තුවකි.

මුලාශ්‍රය: W3.org: HTTP / 1.1 ක්‍රම නිර්වචන

HTTP 200 හරි: සාර්ථක HTTP ඉල්ලීම් සඳහා සම්මත ප්‍රතිචාර. සත්‍ය ප්‍රතිචාරය රඳා පවතින්නේ භාවිතා කරන ඉල්ලීම් ක්‍රමය මත ය.

HTTP 204 අන්තර්ගතය නොමැත: සේවාදායකයා ඉල්ලීම සාර්ථකව ක්‍රියාවට නංවා ඇත, නමුත් කිසිදු අන්තර්ගතයක් ලබා නොදේ

මූලාශ්‍රය: HTTP තත්ව කේත ලැයිස්තුව: 2xx සාර්ථකයි


40
ඉතා ප්‍රයෝජනවත් තනතුරක්! කෙසේ වෙතත්, HTTP තත්ව කේතය කුමක් විය යුතුදැයි මම කල්පනා කරමි, සේවාදායකයා විසින් එවන ලද ඉල්ලීම වලංගු වේ (DELETE mySite / ಅಸ್ತಿತ್ವ / 123 ) සහ මකා දැමීමේ ආයතනය නොපවතී.
මාටින්

65
@Martin: එවැනි අවස්ථාවක දී, මෙම සේවාව සඳහා HTTP 404. පිටුව අතිශයින්ම කතා මකා හෝ නොපවතියි බව ය සම්පතක් සඳහා ලබා ගන්න ඉල්ලීමක් යළි උදා කළ යුතුයි නොවන වූ "වලංගු" ඉල්ලීම - එනම්. සේවාදායකයා එම ඉල්ලීම කිසි විටෙකත් සාර්ථක නොවන බැවින් එය නැවත උත්සාහ නොකළ යුතුය ... HTTP ප්‍රොටෝකෝලය මඟින් ගැටළු 2 ක් අර්ථ දක්වයි - 4xx තත්ව කේතයක් ඇති, සේවාදායකයා නැවත උත්සාහ කිරීමට පෙර ඉල්ලීම වෙනස් කළ යුතු අතර 5xx තත්වයක් ඇති අය කේතය, එයින් පෙන්නුම් කරන්නේ සේවාව කරදරයකට වැටී ඇති අතර සේවාදායකයාට එම ඉල්ලීම වෙනස් නොකර නැවත උත්සාහ කළ යුතු බවයි.
ඩැනියෙල් වාසල්ලෝ

17
E ජෙෆ්මාර්ටින් එය පරිශීලකයාගේ දෘෂ්ටි කෝණයෙන් විය හැකිය, නමුත් සේවාදායකයා සැලකිලිමත් වන පරිදි, සම්පත නොපවතී නම්, සේවාදායකයා 404 ආපසු ලබා දිය යුතුය.
රැන්ඩොල්ෆෝ

17
And රැන්ඩොල්ෆෝ, අයිඩම්පොටෙන්ස් යනු ඔබ එක් වරක් හෝ කිහිප වතාවක් මෙහෙයුමක් කළත් එකම ප්‍රති result ලය ලබා ගැනීමයි. සම්පත් මකාදැමීම සහතික කරන ලෙස සේවාදායකයා ඔබෙන් ඉල්ලා සිටී. 404 ආපසු ලබා දීමේ වාසිය කුමක්ද? එය දෙයාකාරයෙන්ම දැනගත යුත්තේ ඇයි? දැන් සේවාදායක තර්කනයට එකක් වෙනුවට වෙනම ප්‍රතිචාර කේත දෙකක් හැසිරවිය යුතුය.
ගිලි

27
Il ගිලි: සමහර විට විකිය වඩා හොඳින් පැහැදිලි කරනු ඇත: ක්‍රම PUT සහ DELETE යනු
රැන්ඩොල්ෆෝ

863

කෙටි පිළිතුර: PUT සහ DELETE යන දෙකටම ඔබ 200 (හරි) හෝ 204 (අන්තර්ගතයක් නැත) යැවිය යුතුය.

දිගු පිළිතුර: මෙන්න සම්පූර්ණ තීරණ සටහනක් (විශාලනය කිරීමට ක්ලික් කරන්න).

HTTP 1.1 තීරණ සටහන

මුලාශ්‍රය: https://github.com/for-GET/http-decision-diagram


38
රූප සටහන පුදුම සහගතය. මුද්‍රණය සඳහා ඉහළ විභේදන අනුවාදයක් තිබේද?
කිකි

1
පවත්නා සම්පතක POST සන්දර්භය තුළ, තවත් SO සාකච්ඡාවක් ( stackoverflow.com/questions/3825990/… ) යෝජනා කරන්නේ අන්තර්ගතය එකතු කිරීම වෙනුවට ගැටුම් 409 ක් හෝ 302 සොයා ගැනීමට ය.
කොප්පෝර්

7
මකාදැමීමෙන් පසු 204 සහ 200 ප්‍රතිචාරය ආපසු හැරවිය යුතුද යන්න මට කුතුහලයක් ඇති අතර ඒවා නිවැරදි නම් ඒවා ඇයි? මකා දැමුවාද? -> ප්‍රතිචාරයට ආයතනයක් ඇතුළත් වේද? -> ඔව් -> 204 අන්තර්ගතයක් නැත; no -> 200 හරි
matth

62
රූපයේ යාවත්කාලීන කළ අනුවාදය මෙහි ඇත: raw.github.com/for-GET/http-decision-diagram/master/httpdd.png
zaius

19
එය පැච් අතුරුදහන්.
ඩොරමි

153

මෙන්න උපදෙස් කිහිපයක්:

මකන්න

  • 200 (ඔබට ප්‍රතිචාරයේ අමතර දත්ත කිහිපයක් යැවීමට අවශ්‍ය නම්) හෝ 204 (නිර්දේශිත).

  • 202 මෙහෙයුම මකා දමන තවමත් සිදු කර නැත.

  • මකා දැමීමට කිසිවක් නොමැති නම්, 204 හෝ 404 භාවිතා කරන්න (මකාදැමීමේ ක්‍රියාව අනර්ථකාරී ය, දැනටමත් මකාදැමූ අයිතමයක් මකා දැමීම මෙහෙයුම සාර්ථකයි , එබැවින් ඔබට 204 ආපසු ලබා දිය හැකිය , නමුත් අයිඩම්පොටෙන්ට් අනිවාර්යයෙන්ම එකම ප්‍රතිචාරයක් අදහස් නොකරන බව සත්‍යයකි)

වෙනත් දෝෂ:

  • 400 නරක ඉල්ලීම (විකෘති වාක්‍ය ඛණ්ඩය හෝ නරක විමසුමක් අමුතු නමුත් හැකි ය).
  • 401 අනවසර සත්‍යාපනය අසමත් වීම
  • 403 තහනම් : බලය පැවරීම අසාර්ථක වීම හෝ අවලංගු යෙදුම් හැඳුනුම්පත.
  • 405 අවසර නැත . ෂුවර්.
  • 409 සම්පත් ගැටුම් සංකීර්ණ පද්ධති හැකි විය හැක.
  • සහ දෝෂ ඇති විට 501 , 502 .

පුට්

ඔබ එකතුවක අංගයක් යාවත්කාලීන කරන්නේ නම්

  • 200/204 ඉහත DELETE හා සමාන හේතු සහිතව.
  • 202 මෙහෙයුම තවම සිදු කර නොමැති නම්.

යොමු කරන ලද අංගය නොපවතී:

  • PUT 201 ක් විය හැකිය (ඔබ මූලද්‍රව්‍යය නිර්මාණය කළේ එය ඔබගේ හැසිරීම නිසා)

  • 404 ඔබ Put හරහා අංග නිර්මාණය කිරීමට අවශ්ය නොවේ නම්.

  • 400 නරක ඉල්ලීම (විකෘති කළ වාක්‍ය ඛණ්ඩය හෝ මකාදැමීමට වඩා නරක විමසුමක්).

  • 401 අනවසර

  • 403 තහනම් : සත්‍යාපනය අසමත් වීම හෝ අවලංගු යෙදුම් හැඳුනුම්පත.

  • 405 අවසර නැත . ෂුවර්.

  • 409 සම්පත් ගැටුම් මකා දී මෙන්, සංකීර්ණ පද්ධති හැකි විය හැක.

  • 422 Unprocessable ආයතනයක් එය "නරක ඉල්ලීම" (උදා: විකෘති XML / JSON) සහ අවලංගු ක්ෂේත්රයේ වටිනාකම් අතර වෙනස හඳුනා ගැනීමට උපකාරී වේ

  • සහ දෝෂ ඇති විට 501 , 502 .


7
මෙම පිළිතුර සම්පුර්ණයෙන්ම පාහේ විශාල උපුටා දැක්වීම් දෙකකින් සෑදී ඇත, නමුත් කිසිදු ආරෝපණයක් නොමැත. ඔබ උපුටා ගන්නේ කොහෙන්ද?
ක්වෙන්ටින්

රාජ්‍යය effectively ලදායී ලෙස වෙනස් නොකළ හොත් 204 PUT ඉල්ලීමක් සඳහා නැවත පැමිණීමට සුදුසු තත්වයක් ද? උදාහරණයක් ලෙස, ඔබ පරිශීලකයෙකු අක්‍රිය කිරීමට ඉල්ලා සිටියද පරිශීලකයා දැනටමත් අක්‍රීයයි.
Ε Г И І И О

PUT ඉල්ලීම අනර්ථකාරී ය, එබැවින් ඔබට 204 ආපසු ලබා දිය හැකිය, මන්ද පද්ධතිය තුළ වස්තුව වෙනස් වී ඇති බැවිනි. PUT යනු PATCH නොවේ, එබැවින් ඔබට වෙනස් කිරීමට අවශ්‍ය ක්ෂේත්‍රය කුමක්දැයි ඔබට විශ්වාස නැත. ඔබේ සැලසුම ඉල්ලීමෙහි ඇති වස්තුව හරියටම සමාන දැයි දැන ගැනීමට අවශ්‍ය නම් ඔබට 501 - 502 ආපසු එවිය හැකිය ... නමුත් මම එයට ඇත්තෙන්ම කැමති නැත .. මම කැමති 204 හෝ ඔබට අවශ්‍ය නම් තවත් ක්ෂේත්‍ර වෙනස් නොකර පරිශීලකයෙකු අක්‍රිය කරන්න, සමහර විට ඔබට පැච් භාවිතා කළ හැකිය.
ඇල්ෆොන්සෝ ටියැන්ඩා

1
මම HTTP 422 සැකසිය නොහැකි ආයතනය එකතු කරමි. එය "නරක ඉල්ලීමක්" (උදා: විකෘති XML / JSON) සහ අවලංගු ක්ෂේත්‍ර අගයන් අතර වෙනස හඳුනා ගැනීමට උපකාරී වේ.
vdboor


10

200 සහ 204 ට අමතරව, 205 (අන්තර්ගතය යළි පිහිටුවීම) වලංගු ප්‍රතිචාරයක් විය හැකිය.

සේවාදායකයා ඉල්ලීම ඉටු කර ඇති අතර පරිශීලක නියෝජිතයා ඉල්ලීම යැවීමට හේතු වූ ලේඛන දර්ශනය නැවත සකස් කළ යුතුය ... [උදා] ආදානය ලබා දී ඇති පෝරමය ඉවත් කිරීම.


6

DELETE 200 එදිරිව 204 ආපසු එවිය යුතුද යන ප්‍රශ්නය විමසා බලන හෙයින්, සබැඳි සහිත ආයතනයක් නැවත ලබා දීමට සමහර අය නිර්දේශ කිරීම වටී, එබැවින් මනාපය 200 ක් වේ.

"204 (අන්තර්ගතයක් නැත) ආපසු ලබා දෙනවා වෙනුවට, ඒපීඅයි ප්‍රයෝජනවත් විය යුතු අතර යා යුතු ස්ථාන යෝජනා කළ යුතුය. මෙම උදාහරණයේ දී සැපයිය යුතු එක් පැහැදිලි සබැඳියක් වන්නේ" "කොහේ හරි. Com / Container /" (us ණ 'සම්පත්') "- සේවාදායකයා විසින් සම්පතක් මකා දැමූ කන්ටේනරය. සමහර විට සේවාදායකයා වැඩි සම්පත් මකා දැමීමට කැමති නම් එය ප්‍රයෝජනවත් සබැඳියක් වනු ඇත.

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

සේවාදායකයෙකුට 204 ප්‍රතිචාරයක් ලැබුනේ නම්, එය අතහැර දැමිය හැකිය, ඒපීඅයි හි පිවිසුම් ස්ථානයට යන්න, නැතහොත් එය පෙර සංචාරය කළ සම්පත වෙත ආපසු යන්න. කිසිදු විකල්පයක් විශේෂයෙන් හොඳ නැත.

පුද්ගලිකව මම 204 වැරදියි කියා නොකියමි (කතුවරයා ද නොවේ; ඔහු "කරදරකාරී" යැයි කියනු ඇත) මන්ද සේවාදායකයාගේ පැත්තෙන් හොඳ හැඹිලියෙන් බොහෝ වාසි ඇත. හොඳම දෙය නම් දෙයාකාරයෙන්ම ස්ථාවර වීමයි.


6

මෙන්න ඔබේ තත්වයේ දැනුම සඳහා ඔබ දැනගත යුතු තත්ව කේත කිහිපයක්.

1XX තොරතුරු ප්‍රතිචාර

  • 100 දිගටම
  • මාරුවීමේ කෙටුම්පත් 101
  • 102 සැකසුම්
  • 103 මුල් ඉඟි

2XX සාර්ථකත්වය

  • 200 හරි
  • 201 නිර්මාණය
  • 202 පිළිගනු ලැබේ
  • 203 නොවන නිලධාරියා තොරතුරු
  • 204 අන්තර්ගතයක් නොමැත
  • 205 යළි සකසන්න අන්තර්ගත
  • 206 අර්ධ අන්තර්ගත
  • 207 බහු තත්වය
  • 208 දැනටමත් වාර්තා කර ඇත
  • 226 IM භාවිතා කර ඇත

3XX යළි හරවා යැවීම

  • බහුවරණ 300 ක්
  • 301 ස්ථිරවම පෙලඹුණු
  • 302 හමු විය
  • 303 බලන්න, වෙනත්
  • 304 වෙනස් කර නොමැත
  • 305 භාවිතා ප්රොක්සි
  • 306 මාරු ප්රොක්සි
  • 307 තාවකාලික යළි-යොමුවීම
  • 308 නිත්ය යළි-යොමුවීම්

4XX සේවාලාභී දෝෂ

  • 400 නරක ඉල්ලීම
  • 401 අනවසර
  • 402 ගෙවීම අවශ්‍යයි
  • 403 තහනම්
  • 404 හමු නොවීය
  • 405 ක්රමය අවසර නැත
  • 406 පිළිගත නොහැකිය
  • 407 ප්රොක්සි සත්යාපනය අවශ්ය
  • 408 ඉල්ලීම් සබඳතාව කල් ඉකුත්
  • 409 ගැටුම්
  • 410 Gone
  • 411 දිග අවශ්‍යයි
  • 412 පූර්ව කොන්දේසිය අසමත් විය
  • 413 , දූරකතන, බොහෝ විශාල
  • 414 URI බොහෝ කාලයක්
  • 415 සහාය නොදක්වන මාධ්ය වර්ගය
  • 416 රංගේ නොවේ Satisfiable
  • 417 බලාපොරොත්තු අසාර්ථක විය
  • 418 මම තේ පෝච්චියට ඉන්නේ
  • 420 ක්රමය අසමත් වීම
  • වැරදි යොමු කළ ඉල්ලීම
  • 422 Unprocessable සලක්
  • 423 අගුළු දමා ඇත
  • පරායත්තතාවය අසමත් විය
  • වැඩිදියුණු කිරීම අවශ්‍යයි
  • 428 පූර්ව කොන්දේසියක් අවශ්ය
  • 429 බොහෝ ඉල්ලීම්
  • 431 ඉල්ලීම් ශීර්ෂකය ෆීල්ඩ්ස් ඉතා විශාල
  • 451 නීතිමය හේතු සඳහා නොමැත

5XX සේවාදායක දෝෂ

  • 500 අභ්‍යන්තර සේවාදායක දෝෂයකි
  • 501 ක්‍රියාත්මක කර නැත
  • 502 නරක පිවිසුමක්
  • 503 සේවාව නොමැත
  • 504 ගේට්වේ කල් ඉකුත් වීම
  • 505 Http අනුවාදය සහය නොදක්වයි
  • 506 ප්‍රභේදය ද සාකච්ඡා කරන්න
  • 507 ප්රමාණවත් ගබඩා
  • 508 ලූපය අනාවරණය විය
  • 510 දිගු කර නැත
  • 511 ජාල සත්‍යාපනය අවශ්‍යයි

3

2014 ජුනි මාසයේදී RFC7231 යල් පැන ගිය RFC2616. ඔබ HTTP හරහා REST කරන්නේ නම් RFC7231 GET, PUT, POST සහ DELETE වෙතින් අපේක්ෂා කරන හැසිරීම හරියටම විස්තර කරයි.


-1

සම්පතක් වෙනස් කළ විට, ප්‍රතිචාර කේතය 200 (“හරි”) විය යුතුය. යූආර්අයි සම්පතට වෙනස් වන ආකාරයට සම්පත් තත්වය වෙනස් වන්නේ නම් (නිදසුනක් ලෙස, පරිශීලක ගිණුමක් නම් කර ඇත), ප්‍රතිචාර කේතය 301 (“ස්ථිරවම ගෙන යන ලදි”) සහ ස්ථාන ශීර්ෂය නව යූආර්අයි ලබා දිය යුතුය.

වස්තුවක් මකා දැමූ විට, ප්‍රතිචාර කේතය 200 (“හරි”) විය යුතුය.

වැඩි විස්තර සඳහා පහත සබැඳිය අනුගමනය කරන්න - විවේකය සඳහා තත්ව කේතය

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.