http-post - ययन - हिंदी में यूजीसी नेट 1 पेपर नोट्स pdf




आप POST का उपयोग कब करते हैं और आप GET का उपयोग कब करते हैं? (19)

जो मैं इकट्ठा कर सकता हूं, वहां तीन श्रेणियां हैं:

  1. कभी भी GET का उपयोग न GET और POST का उपयोग GET
  2. कभी भी POST का उपयोग न करें और GET उपयोग GET
  3. इससे कोई फर्क नहीं पड़ता कि आप किस का उपयोग करते हैं।

क्या मैं उन तीन मामलों को मानने में सही हूं? यदि हां, तो प्रत्येक मामले से कुछ उदाहरण क्या हैं?


मुझे यद्यपि प्राप्त करने में कोई समस्या नहीं दिखाई देती है, मैं इसे सरल चीजों के लिए उपयोग करता हूं जहां क्वेरी स्ट्रिंग पर चीजों को रखने के लिए यह समझ में आता है।

राज्य को अद्यतन करने के लिए इसका उपयोग करना - एक पृष्ठ को हटाने के लिए delete.php?id=5 की एक GET की तरह - बहुत जोखिम भरा है। लोगों ने पाया कि जब Google के वेब त्वरक ने पृष्ठों पर यूआरएल prefetching शुरू किया - यह सभी 'हटाएं' लिंक मारा और लोगों के डेटा मिटा दिया। खोज इंजन मकड़ियों के साथ वही बात हो सकती है।


लघु संस्करण

प्राप्त करें: आमतौर पर सबमिट किए गए खोज अनुरोधों के लिए उपयोग किया जाता है, या कोई अनुरोध जहां आप चाहते हैं कि उपयोगकर्ता सटीक पृष्ठ को फिर से खींच सके।

जीईटी के फायदे:

  • यूआरएल सुरक्षित रूप से बुकमार्क किया जा सकता है।
  • पेज सुरक्षित रूप से पुनः लोड किया जा सकता है।

जीईटी के नुकसान:

  • वेरिएबल्स यूआरएल के माध्यम से नाम-मूल्य जोड़ों के रूप में पारित किए जाते हैं। (सुरक्षा जोखिम)
  • पारित किए जा सकने वाले चर की सीमित संख्या। (ब्राउज़र के आधार पर। उदाहरण के लिए, इंटरनेट एक्सप्लोरर 2,048 वर्णों तक सीमित है। )

पोस्ट: उच्च सुरक्षा अनुरोधों के लिए प्रयुक्त होता है जहां डेटाबेस का उपयोग डेटाबेस को बदलने के लिए किया जा सकता है, या एक पृष्ठ जिसे आप किसी को बुकमार्क करना नहीं चाहते हैं।

पोस्ट के फायदे:

  • यूआरएल में नाम-मूल्य जोड़े प्रदर्शित नहीं होते हैं। (सुरक्षा + = 1)
  • नाम-मूल्य जोड़े की असीमित संख्या POST के माध्यम से पारित की जा सकती है। संदर्भ।

पोस्ट के नुकसान:

  • पृष्ठ जो POST डेटा का उपयोग करता है बुकमार्क नहीं किया जा सकता है। (यदि आप बहुत वांछित हैं।)

लंबा संस्करण

सीधे हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल से - HTTP / 1.1 :

9.3 प्राप्त करें

जीईटी विधि का अर्थ है अनुरोध-यूआरआई द्वारा जो भी जानकारी (किसी इकाई के रूप में) को पुनर्प्राप्त किया जाता है। यदि अनुरोध-यूआरआई डेटा-उत्पादक प्रक्रिया को संदर्भित करता है, तो यह उत्पादित डेटा होता है जिसे प्रतिक्रिया में इकाई के रूप में वापस किया जाएगा, न कि प्रक्रिया के स्रोत पाठ, जब तक कि पाठ प्रक्रिया का आउटपुट न हो।

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

अनुरोध संदेश में रेंज हेडर फ़ील्ड शामिल होने पर जीईटी विधि का अर्थशास्त्र "आंशिक जीईटी" में बदल जाता है। आंशिक जीईटी अनुरोध करता है कि धारा 14.35 में वर्णित अनुसार इकाई का केवल एक हिस्सा स्थानांतरित किया जाए। आंशिक जीईटी विधि का उद्देश्य आंशिक रूप से पुनर्प्राप्त इकाइयों को क्लाइंट द्वारा पहले से किए गए डेटा को स्थानांतरित किए बिना अनावश्यक नेटवर्क उपयोग को कम करने के लिए किया गया है।

जीईटी अनुरोध की प्रतिक्रिया कैशबल है यदि केवल और अगर यह धारा 13 में वर्णित HTTP कैशिंग के लिए आवश्यकताओं को पूरा करती है।

प्रपत्रों के लिए उपयोग किए जाने पर सुरक्षा विचारों के लिए खंड 15.1.3 देखें।

9.5 पद

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

  • मौजूदा संसाधनों की एनोटेशन;

  • बुलेटिन बोर्ड, समाचार समूह, मेलिंग सूची, या लेखों के समान समूह को संदेश पोस्ट करना;

  • डाटा-हैंडलिंग प्रक्रिया में डेटा जमा करने के परिणाम जैसे फॉर्म सबमिट करने का परिणाम प्रदान करना;

  • एक परिशिष्ट ऑपरेशन के माध्यम से एक डेटाबेस का विस्तार।

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

POST विधि द्वारा की गई क्रिया का परिणाम संसाधन में नहीं हो सकता है जिसे यूआरआई द्वारा पहचाना जा सकता है। इस मामले में, या तो 200 (ठीक) या 204 (कोई सामग्री नहीं) उचित प्रतिक्रिया स्थिति है, इस पर निर्भर करता है कि प्रतिक्रिया में एक इकाई शामिल है जो परिणाम का वर्णन करती है।


HTTP पोस्ट डेटा में डेटा की मात्रा पर निर्दिष्ट सीमा नहीं है, जहां विभिन्न ब्राउज़रों के पास GET के लिए अलग-अलग सीमाएं होती हैं। आरएफसी 2068 कहता है:

255 बाइट्स से ऊपर यूआरआई लंबाई के आधार पर सर्वर सावधान रहना चाहिए, क्योंकि कुछ पुराने ग्राहक या प्रॉक्सी कार्यान्वयन इन लंबाईों का सही ढंग से समर्थन नहीं कर सकते हैं

विशेष रूप से आपको सही HTTP संरचनाओं का उपयोग करना चाहिए जिनके लिए उनका उपयोग किया जाता है। HTTP GET के दुष्प्रभाव नहीं होने चाहिए और सुरक्षित रूप से ताज़ा किया जा सकता है और HTTP प्रॉक्सी आदि द्वारा संग्रहीत किया जा सकता है।

जब आप यूआरएल संसाधन के खिलाफ डेटा जमा करना चाहते हैं तो HTTP POST का उपयोग किया जाता है।

HTTP GET का उपयोग करने के लिए एक सामान्य उदाहरण खोज पर है, यानी खोज? क्वेरी = मेरी + क्वेरी HTTP पोस्ट का उपयोग करने के लिए एक सामान्य उदाहरण ऑनलाइन फॉर्म पर प्रतिक्रिया सबमिट कर रहा है।


PHP में, POST डेटा सीमा आमतौर पर आपके php.ini द्वारा निर्धारित की जाती है। मुझे विश्वास है कि सर्वर / ब्राउज़र सेटिंग्स द्वारा सीमित है - आमतौर पर लगभग 255 बाइट्स।


अच्छी तरह से एक बड़ी बात यह है कि आप GET पर जमा कुछ भी यूआरएल के माध्यम से उजागर होने जा रहे हैं। दूसरा, सिजोज कहते हैं, यूआरएल के लिए पात्रों पर एक सीमा है।


एक और अंतर यह है कि POST को आम तौर पर दो HTTP संचालन की आवश्यकता होती है, जबकि जीईटी को केवल एक की आवश्यकता होती है।

संपादित करें: मुझे सामान्य प्रोग्रामिंग पैटर्न के लिए स्पष्ट करना चाहिए। आम तौर पर सीधे एचटीएमएल वेब पेज के साथ एक पोस्ट का जवाब देना कई कारणों से एक संदिग्ध डिज़ाइन है, जिसमें से एक कष्टप्रद है "आपको इस फॉर्म को पुनः सबमिट करना होगा, क्या आप ऐसा करना चाहते हैं?" बैक बटन दबाकर।


ऐसा कुछ नहीं है जिसे आप प्रति-से नहीं कर सकते हैं। मुद्दा यह है कि आप HTTP GET पर सर्वर स्थिति को संशोधित नहीं करना चाहते हैं। HTTP प्रॉक्सी मानते हैं कि चूंकि HTTP GET राज्य को संशोधित नहीं करता है, फिर कोई उपयोगकर्ता एक बार HTTP GET को आमंत्रित करता है या 1000 बार कोई फर्क नहीं पड़ता है। इस जानकारी का उपयोग करके वे मानते हैं कि पहले HTTP GET के कैश किए गए संस्करण को वापस करना सुरक्षित है। यदि आप HTTP विनिर्देश तोड़ते हैं तो आप जंगली में HTTP क्लाइंट और प्रॉक्सी को तोड़ने का जोखिम उठाते हैं। ऐसा मत करो :)


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

यदि आप राज्य को बदलने के बिना डेटा पढ़ना चाहते हैं तो GET का उपयोग करें, और यदि आप सर्वर पर राज्य अपडेट करना चाहते हैं तो POST का उपयोग करें।


चूंकि जीईटी पूरी तरह से यूआरएल हैं, इसलिए उन्हें वेब ब्राउज़र द्वारा कैश किया जा सकता है और लगातार उत्पन्न छवियों जैसी चीजों के लिए बेहतर इस्तेमाल किया जा सकता है। (एक समाप्ति समय निर्धारित करें)

गुरुत्वाकर्षण पृष्ठ से एक उदाहरण: http://www.gravatar.com/avatar/4c3be63a4c2f539b013787725dfce802?d=monsterid

GET थोड़ा बेहतर प्रदर्शन कर सकते हैं, कुछ वेबसर्वर हैंडलर को आमंत्रित करने से पहले एक अस्थायी फ़ाइल में पोस्ट सामग्री लिखते हैं।

विचार करने की एक और बात आकार सीमा है। जीईटी यूआरएल के आकार, मानक द्वारा 1024 बाइट्स द्वारा कैप्ड किए जाते हैं, हालांकि ब्राउज़र अधिक समर्थन कर सकते हैं।

बेहतर ब्राउज़र संगतता प्राप्त करने के लिए उस से अधिक डेटा स्थानांतरित करना POST का उपयोग करना चाहिए।

उस सीमा से भी कम एक समस्या है, जैसा कि एक और पोस्टर लिखा है, यूआरएल में कुछ भी ब्रोवर के यूआई के इतिहास के समान हिस्सों में खत्म हो सकता है।


जब आप यूआरएल को पृष्ठ की स्थिति को प्रतिबिंबित करना चाहते हैं तो GET का उपयोग करें। यह गतिशील रूप से जेनरेट किए गए पृष्ठों को देखने के लिए उपयोगी है, जैसे कि यहां देखे गए। डेटा सबमिट करने के लिए एक पोस्ट में एक पोस्ट का उपयोग किया जाना चाहिए, जैसे कि जब मैं "अपना उत्तर पोस्ट करें" बटन पर क्लिक करता हूं। यह एक क्लीनर यूआरएल भी बनाता है क्योंकि यह पथ के बाद पैरामीटर स्ट्रिंग उत्पन्न नहीं करता है।


जैसा कि दूसरों ने उत्तर दिया है, यूआरएल आकार पर एक सीमा है, और फाइल केवल पोस्ट के साथ जमा की जा सकती है।

मैं यह जोड़ना चाहता हूं कि कोई एक डेटाबेस के साथ चीजों को जोड़कर एक पोस्ट के साथ क्रियाएं कर सकता है। जब किसी स्क्रिप्ट को कोई पोस्ट या प्राप्त होता है, तो वह जो भी लेखक चाहता है वह कर सकता है। मेरा मानना ​​है कि समझ की कमी पुस्तक को चुनने वाले शब्द या आप इसे कैसे पढ़ते हैं।

एक स्क्रिप्ट लेखक को डेटाबेस बदलने के लिए पदों का उपयोग करना चाहिए और केवल जानकारी के पुनर्प्राप्ति के लिए उपयोग करना चाहिए

स्क्रिप्टिंग भाषाओं ने अनुरोध का उपयोग करने के लिए कई साधन प्रदान किए हैं। उदाहरण के लिए, PHP $_REQUEST के उपयोग को या तो एक पोस्ट या प्राप्त करने के लिए अनुमति देता है। किसी को इसे अधिक विशिष्ट $_GET या $_POST पक्ष में टालना चाहिए।

वेब प्रोग्रामिंग में, व्याख्या के लिए बहुत अधिक जगह है। वहां क्या होना चाहिए और क्या कर सकता है, लेकिन कौन सा बेहतर है बहस के लिए अक्सर होता है। सौभाग्य से, इस मामले में, कोई अस्पष्टता नहीं है। आपको डेटा बदलने के लिए पदों का उपयोग करना चाहिए , और आपको सूचना पुनर्प्राप्त करने के लिए उपयोग करना चाहिए


निर्माण (जैसे विडंबना के बारे में पता है), संपादन, और हटाने के विनाशकारी कार्यों के लिए POST उपयोग करें, क्योंकि आप अपने ब्राउज़र के पता बार में कोई POST कार्रवाई नहीं कर सकते हैं। किसी व्यक्ति को कार्रवाई करने की अनुमति देने के लिए सुरक्षित होने पर GET उपयोग GET । तो एक यूआरएल जैसे:

http://myblog.org/admin/posts/delete/357

आइटम को हटाने के बजाए आपको एक पुष्टिकरण पृष्ठ पर ले जाना चाहिए। दुर्घटनाओं से बचने के लिए यह बहुत आसान है।

POST GET से भी अधिक सुरक्षित है, क्योंकि आप यूआरएल में जानकारी चिपक नहीं रहे हैं। और इसलिए एक HTML फॉर्म के लिए method रूप में GET का उपयोग करना जो पासवर्ड या अन्य संवेदनशील जानकारी एकत्र करता है, वह सबसे अच्छा विचार नहीं है।

एक अंतिम नोट: POST GET तुलना में बड़ी मात्रा में जानकारी प्रेषित कर सकता है। मुझे प्रत्येक की सटीक बाधाओं को याद नहीं है, लेकिन लाभ महत्वपूर्ण है।


पोस्ट का सरल संस्करण हटाएं उपयोग करें - जब आप किसी भी आईडी या नाम के आधार पर डेटा की सूची जैसे कोई संसाधन प्राप्त करना चाहते हैं तो POST - जब आप सर्वर पर कोई डेटा भेजना चाहते हैं। ध्यान रखें पोस्ट पोस्ट भारी वजन ऑपरेशन है क्योंकि अद्यतन के लिए हमें पीओटी के बजाय पीओटी का उपयोग करना चाहिए आंतरिक रूप से POST नया संसाधन उपयोग PUT - जब आप


प्राप्त करें और पोस्ट मूल रूप से किसी ब्राउज़र से वेबसर्वर को वापस भेजने की अनुमति दें (या उस मामले के लिए अन्य HTTP क्लाइंट)।

कल्पना करें कि आपके पास HTML पृष्ठ पर एक फॉर्म है और "सबमिट" बटन पर क्लिक करने से फ़ॉर्म में डेटा को "name = value" जोड़े के रूप में सर्वर पर वापस भेज दिया जाता है।

"विधि" के रूप में प्राप्त करना यूआरएल में सभी डेटा जोड़ देगा और यह आपके ब्राउज़र के यूआरएल बार में दिखाई देगा। जीईटी का उपयोग करके आप जो जानकारी भेज सकते हैं वह प्रतिबंधित है क्योंकि यूआरएल केवल 1024 वर्ण हो सकता है।

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


मैं POST का उपयोग करता हूं जब मैं नहीं चाहता कि लोग QueryString को देखें या जब QueryString बड़ा हो जाए। साथ ही, फाइल अपलोड के लिए POST की आवश्यकता है।

मुझे हालांकि GET का उपयोग करने में कोई समस्या नहीं दिखाई दे रही है, मैं इसे सरल चीजों के लिए उपयोग करता हूं जहां चीजों को QueryString पर रखने के लिए यह समझ में आता है।

जीईटी का उपयोग करना किसी विशेष पृष्ठ से लिंक करने की अनुमति देगा जहां पोस्ट काम नहीं करेगा।


यदि आप दोबारा अनुरोध को याद नहीं करते हैं तो यह प्राप्त करें (यही वह राज्य नहीं बदलता है)।

अगर ऑपरेशन सिस्टम की स्थिति बदलता है तो POST का उपयोग करें।


विकिपीडिया में HTTP के बारे में आलेख पढ़ें। यह समझाएगा कि प्रोटोकॉल क्या है और यह क्या करता है:

प्राप्त

निर्दिष्ट संसाधन का प्रतिनिधित्व अनुरोध करता है। ध्यान दें कि जीईटी को उन परिचालनों के लिए उपयोग नहीं किया जाना चाहिए जो दुष्प्रभावों का कारण बनते हैं, जैसे कि वेब अनुप्रयोगों में कार्रवाई करने के लिए इसका उपयोग करना। इसका एक कारण यह है कि जीईटी को रोबोट या क्रॉलर्स द्वारा मनमाने ढंग से इस्तेमाल किया जा सकता है, जिसे किसी दुष्प्रभाव के दुष्प्रभावों पर विचार करने की आवश्यकता नहीं है।

तथा

पोस्ट सबमिट डेटा को संसाधित किया जाना चाहिए (उदाहरण के लिए, एक HTML फॉर्म से) पहचान संसाधन में। डेटा अनुरोध के शरीर में शामिल है। इसका परिणाम नए संसाधन या मौजूदा संसाधनों के अपडेट या दोनों के निर्माण में हो सकता है।

डब्ल्यू 3 सी में w3.org/2001/tag/doc/whenToUseGet.html का उपयोग करने वाला एक दस्तावेज़ है जो बताता है कि इसका उपयोग कब किया जाए। हवाला देते हुए

HTTP GET या POST चुनने के लिए 1.3 त्वरित चेकलिस्ट

  • जीईटी का प्रयोग करें अगर:
    • बातचीत एक प्रश्न की तरह अधिक है (यानी, यह एक सुरक्षित ऑपरेशन है जैसे क्वेरी, रीड ऑपरेशन, या लुकअप)।

तथा

  • पोस्ट का प्रयोग करें यदि:
    • बातचीत एक आदेश की तरह है, या
    • बातचीत संसाधन की स्थिति को इस तरह से बदलती है कि उपयोगकर्ता समझ जाएगा (उदाहरण के लिए, एक सेवा के लिए सदस्यता), या ओ उपयोगकर्ता को बातचीत के परिणामों के लिए उत्तरदायी माना जाएगा।

हालांकि, HTTP GET या POST का उपयोग करने के अंतिम निर्णय से पहले, कृपया संवेदनशील डेटा और व्यावहारिक विचारों के लिए विचारों पर भी विचार करें।

जब भी आप एक HTML फॉर्म जमा करते हैं तो एक व्यावहारिक उदाहरण होगा। आप या तो पोस्ट निर्दिष्ट करते हैं या फॉर्म एक्शन के लिए मिलता है। PHP तदनुसार $ _GET और $ _POST पॉप्युलेट करेगा।


आरएफसी 2616 से :

9.3 प्राप्त करें
जीईटी विधि का अर्थ है अनुरोध-यूआरआई द्वारा जो भी जानकारी (किसी इकाई के रूप में) को पुनर्प्राप्त किया जाता है। यदि अनुरोध-यूआरआई डेटा-उत्पादक प्रक्रिया को संदर्भित करता है, तो यह उत्पादित डेटा होता है जिसे प्रतिक्रिया में इकाई के रूप में वापस किया जाएगा, न कि प्रक्रिया के स्रोत पाठ, जब तक कि पाठ प्रक्रिया का आउटपुट न हो।


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

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

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

POST विधि द्वारा की गई क्रिया का परिणाम संसाधन में नहीं हो सकता है जिसे यूआरआई द्वारा पहचाना जा सकता है। इस मामले में, या तो 200 (ठीक) या 204 (कोई सामग्री नहीं) उचित प्रतिक्रिया स्थिति है, इस पर निर्भर करता है कि प्रतिक्रिया में एक इकाई शामिल है जो परिणाम का वर्णन करती है।


संक्षेप में

  • safe and idempotent अनुरोधों के लिए GET प्रयोग GET
  • neither safe nor idempotent अनुरोधों के लिए POST उपयोग करें

विवरण में प्रत्येक के लिए एक उचित जगह है। भले ही आप RESTful सिद्धांतों का पालन न करें, आरईएसटी के बारे में सीखने और संसाधन उन्मुख दृष्टिकोण कैसे काम करता है, उससे बहुत कुछ प्राप्त किया जा सकता है।

एक अचल एप्लिकेशन संचालन के लिए use GETs का use GETs करेगा जो safe and idempotent दोनों हैं।

एक safe संचालन एक ऑपरेशन है जो अनुरोधित not change the data को not change the data

एक idempotent ऑपरेशन वह है जिसमें परिणाम be the same होगा चाहे आप कितनी बार अनुरोध करते हैं।

इसका कारण यह है कि, जीईटी का उपयोग सुरक्षित संचालन के लिए किया जाता है, इसलिए वे स्वचालित रूप से भी बेवकूफ होते हैं । आम तौर पर संसाधन प्राप्त करने के लिए एक जीईटी का उपयोग किया जाता है (उदाहरण के लिए स्टैक ओवरफ़्लो पर एक प्रश्न और इसके संबंधित उत्तर) या संसाधनों का संग्रह।

एक PUTs ऐप संचालन के लिए PUTs का उपयोग करेगा जो not safe but idempotent

मुझे पता है कि सवाल जीईटी और पोस्ट के बारे में था, लेकिन मैं एक सेकंड में पोस्ट पर वापस आऊंगा।

आम तौर पर एक पुट का उपयोग संसाधन को संपादित करने के लिए किया जाता है (उदाहरण के लिए एक प्रश्न या स्टैक ओवरफ़्लो पर एक उत्तर संपादित करना)।

किसी भी ऑपरेशन के लिए एक POST का उपयोग किया जाएगा जो neither safe or idempotent

आम तौर पर एक नया संसाधन बनाने के लिए एक पोस्ट का उपयोग किया जाएगा उदाहरण के लिए एक नया SO प्रश्न बनाना (हालांकि कुछ डिज़ाइनों में एक PUT का भी उपयोग किया जाएगा)।

यदि आप दो बार POST चलाते हैं तो आप दो नए प्रश्नों को समाप्त कर देंगे।

एक डिलीट ऑपरेशन भी है, लेकिन मुझे लगता है कि मैं वहां जा सकता हूं :)

विचार-विमर्श

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

लेकिन, भले ही आप रीस्टफुल सिद्धांतों का पालन नहीं कर रहे हैं, फिर भी सूचना को बनाने / संपादित करने के लिए जानकारी / POST को पुनर्प्राप्त करने / देखने के लिए जीईटी का उपयोग करने के संदर्भ में विचार करना उपयोगी हो सकता है।

आपको किसी ऐसे ऑपरेशन के लिए कभी भी GET का उपयोग नहीं करना चाहिए जो डेटा को बदल देता है। यदि कोई खोज इंजन आपके बुरे ऑप के लिंक को क्रॉल करता है, या क्लाइंट बुकमार्क्स यह बड़ी परेशानी का जादू कर सकता है।





http-get