2010-11-19 11 views
9

ऐसा लगता है कि POST पर चिपकने का तरीका है क्योंकि यह स्पष्ट दिखने वाले यूआरएल में परिणाम देता है। GET लंबे भ्रमित यूआरएल बनाने लगता है। सुरक्षा के मामले में POST भी बेहतर है। रूपों में पासवर्ड की सुरक्षा के लिए अच्छा है। असल में मैंने सुना है कि कई डेवलपर्स केवल फॉर्म के लिए POST का उपयोग करते हैं। मैंने यह भी सुना है कि कई डेवलपर वास्तव में कभी भी GET का उपयोग नहीं करते हैं।किसी को वेब एप्लिकेशन में POST के बजाय GET का उपयोग कब करना चाहिए?

तो यदि POST में इन 2 फायदे हैं तो क्यों और किस स्थिति में कोई स्थिति उपयोग करेगा?

GET का क्या लाभ POST है?

+0

डुप्लिकेट [आप POST का उपयोग कब करते हैं और आप GET का उपयोग कब करते हैं?] (Http://stackoverflow.com/questions/46585/when-do-you-use-post-and-when-do-you- उपयोग-प्राप्त) – BalusC

उत्तर

2

कभी-कभी आप चाहते हैं कि आपका वेब एप्लिकेशन खोजने योग्य हो क्योंकि उपयोगकर्ता में यह अनुमान लगाया जा सकता है कि एक निश्चित ऑपरेशन के लिए यूआरएल क्या होना चाहिए। यह एक अच्छा उपयोगकर्ता अनुभव प्रदान करता है और इस बात के लिए आपको मिल का उपयोग करें और http://microformats.org/wiki/rest/urls

5

आप सही हैं की तरह RESTful विनिर्देश के कुछ प्रकार पर अपने यूआरएल का आधार हैं, लेकिन यह खोज पृष्ठों और इस तरह के लिए हो जाता है का उपयोग करना बेहतर हो सकता है। वे स्थान जहां आप यूआरएल को स्पष्ट और खोजने योग्य होना चाहते हैं। यदि आप Google के (या किसी भी खोज पृष्ठ) को देखते हैं, तो यह अंत में www.google.com/?q=my+search डालता है ताकि लोग सीधे खोज से लिंक कर सकें।

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

जीईटी बनाम पोस्ट सुरक्षा पर कोई प्रभाव नहीं पड़ता है, वे असुरक्षित हैं जब तक आप HTTP/SSL का उपयोग नहीं करते।

1

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

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

जब आप एक बटन का उपयोग कर एक वेब पेज सबमिट करते हैं, तो आप एक POST अनुरोध करते हैं।

एक जीईटी अनुरोध में, क्वेरी स्ट्रिंग में अतिरिक्त डेटा भेजा जाता है। उदाहरण के लिए, यूआरएल www.mysite.com?user=david & पासवर्ड = मछली डेटा 'उपयोगकर्ता' और 'पासवर्ड' के दो बिट भेजता है।

एक POST अनुरोध में, फ़ॉर्म के नियंत्रण (जैसे टेक्स्ट बॉक्स आदि) में मान भेजे जाते हैं। यह पता बार में दिखाई नहीं दे रहा है, लेकिन यह आपके वेब ट्रैफ़िक को देखने वाले किसी के लिए पूरी तरह से दृश्यमान है।

एसईएल का उपयोग होने तक जीईटी और पोस्ट दोनों पूरी तरह से असुरक्षित हैं (जैसे वेब पते https शुरू करते हैं)।

+1

किसी बटन पर क्लिक करने से कोई भी GET या POST कर सकता है, यह फ़ॉर्म के लिए विधि सेट पर निर्भर करता है। एक फॉर्म जीईटी अनुरोध की क्वेरी स्ट्रिंग में अपने नियंत्रण मान जमा कर सकता है। यह वांछित हो सकता है या नहीं, इसके आधार पर आप इसके साथ क्या कर रहे हैं। –

+0

यह जरूरी नहीं है कि यह सच है। एजेक्स के माध्यम से ब्राउजर द्वारा पृष्ठ को लोड करने के बाद डेवलपर अनुरोध कर सकता है। इन अनुरोधों को अभी भी क्लाइंट-साइड निष्पादित किया गया है, लेकिन जावास्क्रिप्ट में डेवलपर द्वारा प्रोग्रामिक रूप से निष्पादित किया जा सकता है। – Nick

1

Check the manual, मुझे आश्चर्य है कि किसी ने भी यह नहीं बताया है कि जीईटी और पोस्ट अर्थात् अलग हैं और काफी अलग उद्देश्यों के लिए लक्षित हैं।

हालांकि यह कई मामलों में दिखाई दे सकता है कि 2 दृष्टिकोणों के बीच कोई कार्यात्मक अंतर नहीं है, जब तक कि आप प्रत्येक ब्राउज़र, प्रॉक्सी और सर्वर संयोजन का परीक्षण नहीं कर लेते हैं, तो आप उस पर भरोसा नहीं कर पाएंगे हर मामले जैसेमोबाइल डिवाइस/प्रॉक्सी अक्सर आक्रामक को कैश करते हैं, जहां से उनसे अनुरोध नहीं किया जाता है (लेकिन मैंने कभी ऐसा नहीं किया है जो गलत प्रतिक्रिया को कैश करता है)।

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

कार्यान्वयन बाधाएं भी हैं - पिछली बार जब मैंने चेक किया था, तो यूआरएल का आकार एमएसआईई में लगभग 2k तक सीमित था।

अंत में, जैसा कि आपने देखा है, डेटा दृश्यता का मुद्दा है - हो सकता है कि आप उपयोगकर्ताओं को उनके क्रेडिट कार्ड नंबर/पासवर्ड वाले यूआरएल को बुकमार्क करने की अनुमति न दें।

पोस्ट जाना है क्योंकि यह साफ देख यूआरएल

यही न कि जो एक यूआरएल के बारे में करने के उद्देश्य धरा में जो परिणाम तरीका है। RFC 1630 पढ़ें - एक सार्वभौमिक सिंटेक्स की आवश्यकता।

संबंधित मुद्दे