2011-01-12 12 views
6

मैं फॉर्म हैंडलिंग, उपयोगकर्ता विवेक और डेटा की गोपनीयता के मामले में दोनों के बीच मतभेदों को पूरी तरह से समझता हूं, लेकिन फॉर्म परिणाम भेजते समय कोई भी स्थिति पोस्ट पर जीईटी का उपयोग करने के लिए किस स्थिति में उपयोग करेगा?जीईटी बनाम पोस्ट (फॉर्म प्रसंस्करण)

धन्यवाद

+0

संभव डुप्लिकेट [आप पोस्ट का उपयोग करते हैं और आप प्राप्त का उपयोग करते हैं? जब] (http://stackoverflow.com/questions/46585/when-do-you-use-post-and-when- do-you-use-get) – lonesomeday

उत्तर

6

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

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

1

तो मैं उपयोगकर्ता (जो भी कारण के लिए) अगले कदम/पेज के एक बुकमार्क बचा सकता है कि जरूरत है मुझे लगता है कि शायद पोस्ट के अलावा अन्य प्राप्त का प्रयोग करेंगे।

दोनों असुरक्षित हैं और आपको दोनों से बचना होगा।

2

उदाहरण के लिए, लॉग में फॉर्म डेटा दृश्यमान बनाने के लिए।

+0

आपने जो लिखा है उसे पोस्ट किया है :) –

11

W3C HTML 4.01 Recommendation on the appropriate usage of GET and POST:

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

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

नोट:"प्राप्त करें" विधि ASCII वर्णों के लिए फॉर्म डेटा सेट मानों को प्रतिबंधित करती है। केवल "पोस्ट" विधि (enctype = "multipart/form-data" के साथ) पूरे [ISO10646] वर्ण सेट को कवर करने के लिए निर्दिष्ट है।

की