2012-04-18 7 views
15

अन्य क्रियाएं मुझे समझ में आती हैं, लेकिन मेरे पास "पोस्ट" के लिए एक क्रिया के रूप में ज्यादा संदर्भ नहीं है। क्या यह पोस्ट ऑफिस में पोस्ट की तरह है (जो कुछ समझ में आता है, हालांकि एक खिंचाव की तरह लगता है) या बुलेटिन बोर्ड पर पोस्ट की तरह पोस्ट (मुझे कम समझ में आता है)? क्या किसी को पता है कि "पोस्ट" पर फैसला किसने किया और इसे क्यों चुना गया?HTTP क्रिया पद पोस्ट क्यों कहा जाता है?

+3

अर्थात् बोलते हुए, यह एक HTTP क्रिया है, एक आरईएसटी क्रिया नहीं है। –

+1

क्योंकि GIVE काफी आकर्षक नहीं था। * -डक्स- * – BoltClock

+0

धन्यवाद जॉन, मैंने शीर्षक संपादित किया। –

उत्तर

15

खैर टिम बर्नर्स ली ने लिखा है, "पोस्ट एक बुलेटिन बोर्ड पर पोस्ट की तरह होगा" के रूप में सुंदर के पास आता है जवाब, मुझे लगता है। अंत में, यह उन पद्धतियों में से एक है जो इस विधि के लिए डिज़ाइन किए गए थे। POST हमेशा किसी भी प्रकार के 'फैक्ट्री' को सामानों को पोस्ट करने के लिए सामान पोस्ट करने के लिए होता है - अन्यथा आप PUT का उपयोग कर सकते हैं।

POST पद्धति अनुरोध करने के लिए मूल सर्वर स्वीकार इकाई संसाधन अनुरोध में अनुरोध- URI द्वारा की पहचान की एक नई अधीनस्थ के रूप में अनुरोध में संलग्न प्रयोग किया जाता है: चलो RFC2616, Section 9.5 पर एक नजर है लाइन। पोस्ट एक समान पद्धति का अनुसरण कार्यों को कवर करने के लिए अनुमति देने के लिए बनाया गया है:

- Annotation of existing resources; 

    - Posting a message to a bulletin board, newsgroup, mailing list, 
    or similar group of articles; 

    - Providing a block of data, such as the result of submitting a 
    form, to a data-handling process; 

    - Extending a database through an append operation. 
बेशक

इस कारण है कि यह POST कहा जाता है की सटीक परिभाषा नहीं है, लेकिन मुझे लगता है कि इस बारे में कुछ सुराग दे सकता है इसके पीछे विचार।

हो सकता है कि हम भी शब्द 'पोस्ट' (http://www.thefreedictionary.com/Post, 3 परिभाषा) के कुछ अर्थ पर एक नज़र हो सकता था - कि के अनुसार, एक क्रिया के रूप पद मतलब हो सकता है

  • मेल करने के लिए (एक पत्र या पैकेज)
  • ताजा खबर
  • बहीखाता (एक खाता बही)
01 में आवश्यक प्रविष्टियों बनाने के में एक खाता बही के लिए (एक आइटम) स्थानांतरित करने के लिए के बारे में सूचित करने के लिए

और यह वही है जो POST करता है (रूपक रूप से)। अगर आप ईमेल भेजना चाहते हैं, तो आप अपने ईमेल प्रदाता को इसे संभालने दें और फिर आपको राज्य के बारे में सूचित करें। और यह PUT और POST के बीच भी अंतर है: यदि ग्राहक संसाधन को संभालने का प्रभारी है, तो आप PUT (क्योंकि आप जानते हैं कि इसे क्या रखना है और कहां रखना है) का उपयोग करें।

तो, सैद्धांतिक रूप से, यदि आप उस व्यक्ति का आईपी पता जानते हैं जिसे आप ईमेल भेजना चाहते हैं, तो आपको अपने प्रदाता को यह सामान ढूंढने की आवश्यकता नहीं होगी। लेकिन अब, आप क्या डालते हैं, लेकिन जहां नहीं है। तो इस मामले में, आप POST का उपयोग करें। आप 'नवीनतम समाचार के सर्वर को सूचित करें' और सर्वर यह तय करता है कि इसे कहां रखा जाए। तो आप इसे किसी संसाधन में 'किसी आइटम को स्थानांतरित करने' के रूप में सोच सकते हैं जो पहले से मौजूद है (जैसे किसी फोरम या किसी थ्रेड में) - आप बस कुछ जोड़ना चाहते हैं।

मुझे उम्मीद है कि यह कोई समझ में आता है ...

+0

यह एक अद्भुत ब्रेकडाउन है कि पोस्ट क्यों समझ में आता है। मुझे लगता है कि जब तक टिम बर्नर्स-ली इस में घूमता है, उतना ही निश्चित नहीं है जितना इसे प्राप्त करने जा रहा है ... –

+0

@ केल्सीइनिस हमेशा मदद करने में प्रसन्न हैं :) और मुझे उम्मीद है कि श्री बर्नर्स-ली मेरे लिए बहुत मुश्किल नहीं होंगे यह ... :-P – Quasdunk

+1

एक पल के लिए मैंने सोचा कि मैं अंग्रेजी पर था .stackexchange.com –

0

मुझे नहीं लगता कि 'एक पत्र पोस्ट करने' के रूप में पोस्ट एक खिंचाव है। एक POST अनुरोध एक संदेश है जिसमें डेटा शामिल है। करने के लिए जो, क्रिया HTTP से आते हैं, तो मूल एचटीएमएल कल्पना 1995 में

1

POST विधि का अनुरोध यह अनुरोध करने के लिए किया जाता है कि मूल सर्वर अनुरोध-अनुरोध में अनुरोध-यूआरआई द्वारा पहचाने गए संसाधन के नए अधीनस्थ के रूप में अनुरोध में संलग्न इकाई को स्वीकार करता है। POST को निम्न कार्यों को कवर करने के लिए एक समान विधि को अनुमति देने के लिए डिज़ाइन किया गया है:

  • मौजूदा संसाधनों की व्याख्या;
  • बुलेटिन बोर्ड, समाचार समूह, मेलिंग सूची, या लेखों के समान समूह को संदेश पोस्ट करना;
  • डाटा-हैंडलिंग प्रक्रिया में डेटा सबमिट करने के परिणाम जैसे डेटा का एक ब्लॉक प्रदान करना;
  • एक परिशिष्ट संचालन के माध्यम से डेटाबेस का विस्तार।

W3/POST

बाकी डेवलपर्स स्पष्ट रूप से HTTP विधियों का उपयोग करें और एक तरीका है कि प्रोटोकॉल परिभाषा के अनुरूप में लिए कहता है। यह मूल आरईएसटी डिज़ाइन सिद्धांत बनाने, पढ़ने, अपडेट करने और हटाने (सीआरयूडी) संचालन और HTTP विधियों के बीच एक-से-एक मैपिंग स्थापित करता है। इस मानचित्रण के अनुसार:

  • सर्वर पर संसाधन बनाने के लिए, POST का उपयोग करें।
  • संसाधन पुनर्प्राप्त करने के लिए, GET का उपयोग करें।
  • किसी संसाधन की स्थिति बदलने या इसे अपडेट करने के लिए, PUT का उपयोग करें।
  • संसाधन को हटाने या हटाने के लिए, DELETE का उपयोग करें।

IBM/REST

जब हम पोस्ट कर रहे हैं, हम वास्तव में नई डेटा (बनाने संसाधन) भेज रहे हैं लेकिन इसे पाने के लिए नहीं जा रहा या अपडेट के बारे में कॉल करने या हमारे पुराने documnets टुकड़ों के लिए पूछ रहा।