विचार यह है कि प्रतिक्रिया निकाय आपको एक पृष्ठ देता है जो आपको चीज़ से जोड़ता है:
201 बनाया गया
201 (निर्मित) स्थिति कोड इंगित करता है कि अनुरोध पूरा हो गया है और इसके परिणामस्वरूप एक या अधिक नए संसाधन बनाए गए हैं। अनुरोध द्वारा बनाया गया प्राथमिक संसाधन प्रतिक्रिया में या तो कोई स्थान हेडर फ़ील्ड द्वारा पहचाना जाता है, या, यदि कोई प्रभावी स्थान नहीं मिलता है, तो प्रभावी अनुरोध एनआरआई द्वारा।
इसका मतलब यह है कि आप एक Location
प्रतिक्रिया हैडर में शामिल होंगे जो उस URL को देता है जहाँ आप नई बनाई गई चीज़ पा सकते हैं :
HTTP/1.1 201 Created
Date: Sat, 02 Apr 2016 12:22:40 GMT
Location: http://stackoverflow.com/a/36373586/12597
प्रतिक्रिया शरीर
वे तब उल्लेख करते हैं कि आपको प्रतिक्रिया निकाय में क्या शामिल होना चाहिए :
201 प्रतिसाद पेलोड आम तौर पर बनाए गए संसाधन (लिंक) का वर्णन करता है और लिंक करता है।
ब्राउज़र का उपयोग करने वाले मानव के लिए, आप उन्हें कुछ ऐसा दे सकते हैं जो वे देख सकते हैं, और उनके नए बनाए गए संसाधन के लिए क्लिक कर सकते हैं:
HTTP/1.1 201 Created
Date: Sat, 02 Apr 2016 12:22:40 GMT
Location: http://stackoverflow.com/a/36373586/12597
Content-Type: text/html
Your answer has been saved!
Click <A href="https://stackoverflow.com/a/36373586/12597">here</A> to view it.
यदि पेज केवल एक रोबोट द्वारा उपयोग किया जाएगा, तो यह प्रतिक्रिया करने के लिए समझ में आता है कि कंप्यूटर को पढ़ने योग्य होना चाहिए:
HTTP/1.1 201 Created
Date: Sat, 02 Apr 2016 12:22:40 GMT
Location: http://stackoverflow.com/a/36373586/12597
Content-Type: application/xml
<createdResources>
<questionID>1860645</questionID>
<answerID>36373586</answerID>
<primary>/a/36373586/12597</primary>
<additional>
<resource>http://stackoverflow.com/questions/1860645/create-request-with-post-which-response-codes-200-or-201-and-content/36373586#36373586</resource>
<resource>http://stackoverflow.com/a/1962757/12597</resource>
</additional>
</createdResource>
या, यदि आप पसंद करते हैं:
HTTP/1.1 201 Created
Date: Sat, 02 Apr 2016 12:22:40 GMT
Location: http://stackoverflow.com/a/36373586/12597
Content-Type: application/json
{
"questionID": 1860645,
"answerID": 36373586,
"primary": "/a/36373586/12597",
"additional": [
"http://stackoverflow.com/questions/1860645/create-request-with-post-which-response-codes-200-or-201-and-content/36373586#36373586",
"http://stackoverflow.com/a/36373586/12597"
]
}
प्रतिक्रिया पूरी तरह से आप पर निर्भर है; यह मनमाने ढंग से आप क्या चाहते हैं।
कैश फ्रेंडली
अंत में वहाँ अनुकूलन है कि मैं बनाए गए संसाधन को प्री-कैश कर सकता हूं (क्योंकि मेरे पास सामग्री पहले से है; मैंने अभी इसे अपलोड किया है)। सर्वर एक तारीख या ETag लौटा सकता है जिसे मैं अपने द्वारा अपलोड की गई सामग्री के साथ संग्रहीत कर सकता हूं:
अर्थ प्रतिक्रिया हेडर क्षेत्रों के अर्थ और उद्देश्य की चर्चा के लिए धारा 7.2 देखें , जैसे कि ईटाग और लास्ट-संशोधित, एक 201 प्रतिक्रिया में।
HTTP/1.1 201 Created
Date: Sat, 02 Apr 2016 12:22:40 GMT
Location: http://stackoverflow.com/a/23704283/12597
Content-Type: text/html
ETag: JF2CA53BOMQGU5LTOQQGC3RAMV4GC3LQNRSS4
Last-Modified: Sat, 02 Apr 2016 12:22:39 GMT
Your answer has been saved!
Click <A href="https://stackoverflow.com/a/36373586/12597">here</A> to view it.
और ETag
विशुद्ध रूप से मनमाना मूल्य हैं। जब कोई संसाधन बदलता है (और कैश को अद्यतन करने की आवश्यकता होती है) तो यह सब अलग होता है। ETag आमतौर पर एक हैश (जैसे SHA2) है। लेकिन यह एक डेटाबेस rowversion
, या एक वृद्धि संख्या संशोधन हो सकता है । कोई भी चीज जो होगा बदल जब बात बदल जाता है।