2013-03-02 2 views
5

मैं इस मंच में नया हूं और मैं इस रात से PHP सीख रहा हूं।GET और POST विधियों के बीच अंतर?

मैं एक फार्म भेजना चाहते हैं, लेकिन मैं के बीच अंतर पता नहीं है:

<form action="page2.php" method="GET"> 

और

<form action="page2.php" method="POST"> 

किसी को भी मेरी मदद कर सकता है कृपया?

धन्यवाद।

+0

पर HTTP अनुरोध के बारे में और अधिक पढ़ें हो सकता है कि यह आपकी मदद कर सकता है: http://www.cs.tut.fi/~jkorpela/forms/methods.html – juanchopx2

+0

@johny जी करता है, तो पिछले लिंक नहीं है सहायता, http://www.w3schools.com/tags/ref_httpmethods.asp – Daniel

+0

[जीईटी और पोस्ट विधि के बीच अंतर] देखें (http://www.jquery2dotnet.com/2014/03/difference-between-get-and -पोस्ट-विधियां.html) – Sender

उत्तर

26

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

  • पैरामीटर ब्राउज़र इतिहास में रहने के कारण वे यूआरएल
  • बुकमार्क किया जा सकता का हिस्सा हैं।
  • पासवर्ड या अन्य संवेदनशील जानकारी भेजते समय GET विधि का उपयोग नहीं किया जाना चाहिए।
  • 7607 वर्ण अधिकतम आकार।
  • यूआरएल उदाहरण: page2.php श्रेणी = खेल

पोस्ट:

  • पैरामीटर ब्राउज़र इतिहास में सहेजे नहीं गए हैं।
  • बुकमार्क नहीं किया जा सकता है।
  • पासवर्ड या अन्य संवेदनशील जानकारी भेजते समय POST विधि का उपयोग किया जाता है।
  • POST विधि के लिए 8 एमबी अधिकतम आकार।
  • यूआरएल उदाहरण: page2.php
+2

ध्यान दें कि POST के लिए अधिकतम आकार 8 एमबी नहीं है, इसे सर्वर की तरफ कॉन्फ़िगर किया जा सकता है। –

+1

मुझे यह अजीब लगता है कि इस जवाब को इतने सारे अपवॉट मिल गए हैं, लोग वास्तव में इसे खोज लेंगे और सोचेंगे कि पोस्ट करने की सीमा है। यह दोनों विधियों को सही तरीके से समझाता नहीं है। –

0

एक GET अनुरोध किया जाता है, प्रपत्र पैरामीटर क्वेरी स्ट्रिंग कहा जाता है में URL में एन्कोडेड कर रहे हैं। उदाहरण

www.someemailprovider.com/[email protected]&password=xxyz

एक POST अनुरोध के लिए, एक GET अनुरोध के विपरीत, HTTP अनुरोध के मुख्य भाग में प्रपत्र मापदंडों गुजरता URL में नहीं।

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

नोट

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

1

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

-1

ये HTTP अनुरोध विधियां हैं, PHP विशेष नहीं हैं।

$ _GET अंत या यूआरएल में जोड़ा गया है। अर्थात http://example.org/?foo=bar PHP में पहुँच इसके साथ:

$foo = $_GET['foo']; 

या $ foo = $ _REQUEST [ 'foo'];

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

$ _POST आपके यूआरएल में दिखाई नहीं दे रहा है, और आमतौर पर फॉर्म जमा करने के बाद उपयोग किया जाता है। यह PHP में प्रवेश के साथ:

$foo = $_POST['foo']; 

या $ foo = $ _REQUEST [ 'foo'];

http://www.w3schools.com/tags/ref_httpmethods.asp

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