HTTP POST अनुरोध में पैरामीटर कैसे भेजे जाते हैं?


1475

HTTP GET अनुरोध में, पैरामीटर को एक स्ट्रिंग स्ट्रिंग के रूप में भेजा जाता है :

http://example.com/page ? पैरामीटर = मूल्य और भी = एक और

HTTP POST अनुरोध में, पैरामीटर URI के साथ नहीं भेजे जाते हैं।

मूल्य कहां हैं? अनुरोध हैडर में? अनुरोध शरीर में? वो कैसा दिखता है?

जवाबों:


1252

मान अनुरोध बॉडी में भेजे जाते हैं, प्रारूप में सामग्री प्रकार निर्दिष्ट करता है।

आमतौर पर सामग्री प्रकार होता है application/x-www-form-urlencoded, इसलिए अनुरोध निकाय क्वेरी स्ट्रिंग के समान प्रारूप का उपयोग करता है:

parameter=value&also=another

जब आप प्रपत्र में फ़ाइल अपलोड का उपयोग करते हैं, तो आप multipart/form-dataइसके बजाय एन्कोडिंग का उपयोग करते हैं , जिसमें एक अलग प्रारूप होता है। यह अधिक जटिल है, लेकिन आपको आमतौर पर इसकी परवाह करने की आवश्यकता नहीं है कि यह कैसा दिखता है, इसलिए मैं एक उदाहरण नहीं दिखाऊंगा, लेकिन यह जानना अच्छा हो सकता है कि यह मौजूद है।


25
मैं फ़ाइल अपलोड के बारे में भूल गया था अलग (+ 1 / स्वीकृत)। आपका उत्तर पर्याप्त है, जबकि यदि इस पर अधिक जानकारी होती तो यह अतिरिक्त अच्छा होता multipart/form-data। उन लोगों के लिए हालांकि, यहाँ इसके बारे में एक सवाल है
कैमिलो मार्टिन

73
नोट : बॉडी को हेडर से सिर्फ एक खाली लाइन द्वारा अलग किया जाता है ।
गाब

2
आपने समझाया था कि हम HTTPBody में क्या जगह रखते हैं, लेकिन HTTPHeader में हम क्या लिखते / लिखते हैं? इससे कौन सा उद्देश्य पूरा होगा?
हनी

4
@Honey: किसी पोस्ट के लिए HTTP हेडर एक के लिए एक जैसा दिखता है, लेकिन GET के बजाय क्रिया POST के साथ, और सामग्री प्रकार मान (और एक वैकल्पिक सामग्री लंबाई मान) के रूप में अनुरोध में सामग्री (शरीर) है। हर प्रकार के अनुरोध में एक शीर्षलेख होता है, कुछ प्रकारों में एक निकाय भी होता है।
गुफा

4
@KennethWorden नहीं, गैर तरीकों में से JSON ठीक से भेज देगा। हालाँकि आप एक जोंस फाइल को एनकोडेड रूप में अपलोड कर सकते हैं multipart/form-dataया यदि आप अनुरोध निर्माण के प्रभारी हैं, तो कंटेंट-टाइप को application/json
बदलकर

428

कंटेंट को HTTP हेडर के बाद डाला जाता है। HTTP POST का प्रारूप HTTP हेडर है, उसके बाद एक रिक्त रेखा है, उसके बाद अनुरोध निकाय है। POST चर को शरीर में मुख्य-मूल्य जोड़े के रूप में संग्रहीत किया जाता है।

आप इसे नीचे दिखाए गए HTTP पोस्ट की कच्ची सामग्री में देख सकते हैं:

POST /path/script.cgi HTTP/1.0
From: frog@jmarshall.com
User-Agent: HTTPTool/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 32

home=Cosby&favorite+flavor=flies

आप इसे फ़िडलर जैसे उपकरण का उपयोग करके देख सकते हैं , जिसका उपयोग आप कच्चे HTTP अनुरोध और वायर में भेजे जा रहे प्रतिक्रिया पेलोड को देखने के लिए कर सकते हैं।


39
केवल अगर सामग्री प्रकार है application/x-www-form-urlencoded, जो हमेशा मामला नहीं है।
गुफ़ा

@ कैमिलो मार्टिन .... [महान प्रश्न के लिए +1] और जोएल्फानो .... [+1] महान उत्तर के लिए ....... मुझे POST अनुरोध के बारे में अब स्पष्ट विचार आया है ...। लेकिन अगर कोई छवि डेटा की जानकारी के मूल्य जोड़ी के साथ आती है तो ..... POST की संरचना कैसी दिखती है?
देवराठ

9
@ जो, अब तुम Fromवहाँ हेडर क्यों लगाओगे ?
3

@ हाय, मुझे Fromशीर्ष लेख का यादृच्छिक समावेश पसंद है । IMO यह 418 HTTP स्टेटस कोड के साथ है।
टॉम हावर्ड

आप एक उपयोगकर्ता और पासवर्ड प्रमाणीकरण कैसे जोड़ते हैं?
m4l490n

376

संक्षिप्त उत्तर: पोस्ट अनुरोधों में, मान अनुरोध के "निकाय" में भेजे जाते हैं। वेब-प्रपत्रों के साथ वे संभवतया मीडिया प्रकार application/x-www-form-urlencodedया के साथ भेजे जाते हैं multipart/form-data। भाषाओं या चौखटे जो संभाल वेब अनुरोध करने के लिए डिजाइन किया गया है आम तौर पर इस तरह के अनुरोध के साथ "सही काम ™" करते हैं और (जैसे आसानी से डीकोड मूल्यों के लिए आसान पहुँच के साथ आप प्रदान प्रोग्रामिंग $_REQUESTया $_POSTPHP में, या cgi.FieldStorage(), flask.request.formअजगर में)।


अब थोड़ा सा खोदते हैं, जिससे अंतर समझने में मदद मिल सकती है;)

के बीच का अंतर GETऔर POSTअनुरोध काफी हद तक शब्दार्थ हैं। वे "अलग-अलग" भी उपयोग किए जाते हैं, जो अंतर को बताता है कि मूल्यों को कैसे पारित किया जाता है।

GET ( प्रासंगिक RFC अनुभाग )

किसी GETअनुरोध को निष्पादित करते समय , आप सर्वर से एक, या संस्थाओं का एक सेट मांगते हैं। क्लाइंट को परिणाम को फ़िल्टर करने की अनुमति देने के लिए, यह URL के तथाकथित "क्वेरी स्ट्रिंग" का उपयोग कर सकता है। क्वेरी स्ट्रिंग के बाद का हिस्सा है ?। यह URI सिंटैक्स का हिस्सा है ।

इसलिए, आपके एप्लिकेशन कोड के दृष्टिकोण से ( अनुरोध प्राप्त करने वाला हिस्सा ), आपको इन मूल्यों तक पहुंच प्राप्त करने के लिए URI क्वेरी भाग का निरीक्षण करना होगा।

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

POST ( प्रासंगिक RFC अनुभाग )

किसी POSTअनुरोध को निष्पादित करते समय , ग्राहक वास्तव में दूरस्थ होस्ट को एक नया दस्तावेज़ प्रस्तुत कर रहा है । तो, एक क्वेरी स्ट्रिंग (शब्दार्थ) समझ में नहीं आता है। यही कारण है कि आप अपने आवेदन कोड में उन तक पहुँच नहीं है।

POSTथोड़ा और अधिक जटिल है (और अधिक लचीला तरीका ):

POST अनुरोध प्राप्त करते समय, आपको हमेशा एक "पेलोड" या, HTTP शब्दों में: एक संदेश निकाय की अपेक्षा करनी चाहिए । अपने आप में संदेश निकाय बहुत बेकार है, क्योंकि कोई मानक नहीं है (जहां तक ​​मैं बता सकता हूं। शायद एप्लिकेशन / ऑक्टेट-स्ट्रीम?) प्रारूप। बॉडी फॉर्मेट को Content-Typeहेडर द्वारा परिभाषित किया गया है । HTML FORMएलिमेंट का उपयोग करते समय method="POST", यह आमतौर पर होता है application/x-www-form-urlencoded। यदि आप फ़ाइल अपलोड का उपयोग करते हैं तो एक और बहुत ही सामान्य प्रकार मल्टीपार्ट / फॉर्म-डेटा है । लेकिन यह हो सकता है कुछ भी , से लेकर text/plain, अधिक application/jsonया यहां तक कि एक कस्टम application/octet-stream

किसी भी स्थिति में, यदि एक POSTअनुरोध के साथ Content-Typeकिया जाता है जिसे आवेदन द्वारा नियंत्रित नहीं किया जा सकता है, तो उसे एक 415स्थिति-कोड वापस करना चाहिए ।

अधिकांश प्रोग्रामिंग लैंग्वेज (और / या वेब-फ्रेमवर्क) संदेश बॉडी को / से सबसे सामान्य प्रकारों (जैसे application/x-www-form-urlencoded, multipart/form-dataया application/json) को डी / एनकोड करने का एक तरीका प्रदान करते हैं । तो यह आसान है। कस्टम प्रकारों को संभावित रूप से कुछ अधिक काम करने की आवश्यकता होती है।

उदाहरण के रूप में एक मानक एचटीएमएल फ़ॉर्म एन्कोडेड दस्तावेज़ का उपयोग करते हुए, एप्लिकेशन को निम्न चरणों का पालन करना चाहिए:

  1. Content-Typeक्षेत्र पढ़ें
  2. यदि मूल्य समर्थित मीडिया-प्रकारों में से एक नहीं है, तो 415स्थिति कोड के साथ प्रतिक्रिया लौटाएं
  3. अन्यथा, संदेश निकाय से मानों को डीकोड करें।

फिर, अन्य लोकप्रिय भाषाओं के लिए PHP, या वेब-फ्रेमवर्क जैसी भाषाएँ संभवतः आपके लिए इसे संभालेंगी। इसका अपवाद 415त्रुटि है। कोई भी फ्रेमवर्क यह अनुमान नहीं लगा सकता है कि आपका एप्लिकेशन किस सामग्री-प्रकार का समर्थन करता है और / या समर्थन नहीं करता है। यह आप पर निर्भर करता है।

PUT ( प्रासंगिक RFC अनुभाग )

एक PUTअनुरोध एक अनुरोध के रूप में बहुत सटीक तरीके से नियंत्रित किया जाता है POST। बड़ा अंतर यह है कि POSTअनुरोध को सर्वर को यह तय करने देना चाहिए कि (और यदि हो तो) एक नया संसाधन कैसे बनाए। ऐतिहासिक रूप से (अब अप्रचलित RFC2616 से यह URI के "अधीनस्थ" (बच्चे) के रूप में एक नया संसाधन बनाना था जहां अनुरोध भेजा गया था)।

PUTइसके विपरीत एक अनुरोध उस URI पर एक संसाधन को "जमा" करने के लिए माना जाता है , और वास्तव में उस सामग्री के साथ। न आधिक न कम। यह विचार है कि क्लाइंट "पुटिंग" से पहले पूरा संसाधन तैयार करने के लिए जिम्मेदार है। सर्वर को इसे दिए गए URL के रूप में स्वीकार करना चाहिए ।

परिणामस्वरूप, मौजूदा संसाधन POSTको बदलने के लिए आमतौर पर अनुरोध का उपयोग नहीं किया जाता है । एक PUTअनुरोध दोनों बना और बदल सकते हैं ।

पक्षीय लेख

" पथ पैरामीटर " भी हैं जिनका उपयोग दूरस्थ में अतिरिक्त डेटा भेजने के लिए किया जा सकता है, लेकिन वे इतने असामान्य हैं, कि मैं यहां बहुत विस्तार में नहीं जाऊंगा। लेकिन, संदर्भ के लिए, यहाँ RFC का एक अंश है:

पदानुक्रमित रास्तों में डॉट-सेगमेंट के अलावा, जेनेरिक सिंटैक्स द्वारा एक पथ खंड को अपारदर्शी माना जाता है। यूआरआई उत्पादक अनुप्रयोग अक्सर स्कीम-विशिष्ट या डीरेफेरेंस-हैंडलर-विशिष्ट उपकेंद्रों को हटाने के लिए एक सेगमेंट में अनुमत आरक्षित वर्णों का उपयोग करते हैं। उदाहरण के लिए, अर्धविराम (";") और समान ("=") आरक्षित वर्णों का उपयोग अक्सर उस खंड पर लागू मापदंडों और पैरामीटर मानों को परिसीमित करने के लिए किया जाता है। अल्पविराम (",") आरक्षित वर्ण अक्सर समान उद्देश्यों के लिए उपयोग किया जाता है। उदाहरण के लिए, एक यूआरआई निर्माता "नाम; v = 1.1" जैसे सेगमेंट का उपयोग "नाम" के संस्करण 1.1 के संदर्भ में कर सकता है, जबकि दूसरा समान नाम के लिए "नाम, 1.1" जैसे सेगमेंट का उपयोग कर सकता है। पैरामीटर प्रकार को योजना-विशिष्ट शब्दार्थ द्वारा परिभाषित किया जा सकता है,


1
मैं वास्तव में एक मामूली स्पर्शरेखा पर चला गया हो सकता है। मैंने उत्तर के शीर्ष पर एक "tl; dr" जोड़ा, जो इसे स्पष्ट करना चाहिए।
9

मैंने भी अभी इसे RFC2616 के बजाय RFC7231 के संदर्भ में संपादित किया है (जो थोड़ी देर के लिए अप्रचलित रहा है)। अपडेट किए गए लिंक के अलावा इस उत्तर के लिए मुख्य अंतर "PUT" अनुभाग में है।
9

मुझे लगा कि PUT को POST से अलग तरीके से संभाला गया है क्योंकि यह एक तरह से माना जाता है? stackoverflow.com/questions/611906/…
rogerdpack 21

1
@rogerdpack आप गलत नहीं हैं। यदि आप PUTसेक्शन में दूसरा पैराग्राफ पढ़ते हैं , तो आप देखेंगे कि यह एक प्रकार का शब्द है। POSTइसके विपरीत - परिभाषा के अनुसार - नहीं हो सकता है। POSTहमेशा एक नया संसाधन बनाएगा। PUTहोगा, अगर एक समान संसाधन मौजूद हैं तो इसे प्रतिस्थापित करें। इसलिए यदि आप POST10 बार कॉल करते हैं , तो आप 10 संसाधन बनाएंगे। यदि आप PUT10 बार कॉल करते हैं , तो यह (शायद) केवल एक ही बनायेगा। क्या वह आपके सवाल का जवाब है?
अप्रकाश

59

आप इसे सीधे ब्राउज़र URL बार पर टाइप नहीं कर सकते।

आप देख सकते हैं कि उदाहरण के लिए Live HTTP हेडर के साथ इंटरनेट पर POST डेटा कैसे भेजा जाता है । परिणाम कुछ इस तरह होगा

http://127.0.0.1/pass.php
POST /pass.php HTTP/1.1

Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Referer: http://127.0.0.1/pass.php
Cookie: passx=87e8af376bc9d9bfec2c7c0193e6af70; PHPSESSID=l9hk7mfh0ppqecg8gialak6gt5
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 30
username=zurfyx&pass=password

यह कहां कहा गया है

Content-Length: 30
    username=zurfyx&pass=password

पद मान होगा।


2
स्पष्टीकरण: यहाँ Content-Lengthमाना जाता 29है? यह स्ट्रिंग की वास्तविक लंबाई है username=zurfyx&pass=password
हिप्पो

@ हिप्पो एक न्यूलाइन कैरेक्टर था जिसका मतलब था?
9 अक्टूबर

@ लंबी पैदल यात्रा मैं देख रहा हूं कि आपका क्या मतलब है। इसलिए मुझे लगता है कि सामग्री हमेशा इसके अंत में एक नई रेखा होती है, फिर।
हिप्पो

2
हेडर को अतिरिक्त न्यूलाइन के साथ बॉडी से अलग किया जाता है
Mára Toner

24

POST अनुरोध में डिफ़ॉल्ट मीडिया प्रकार है application/x-www-form-urlencoded। यह कुंजी-मूल्य जोड़े को एन्कोडिंग के लिए एक प्रारूप है। कुंजी डुप्लिकेट हो सकती है। प्रत्येक कुंजी-मूल्य जोड़ी को एक &चरित्र द्वारा अलग किया जाता है, और प्रत्येक कुंजी को एक =चरित्र द्वारा उसके मूल्य से अलग किया जाता है।

उदाहरण के लिए:

Name: John Smith
Grade: 19

इनकोडिंग है:

Name=John+Smith&Grade=19

यह HTTP निकाय के बाद अनुरोध निकाय में रखा गया है।


1
आपने समझाया था कि हम HTTPBody में क्या जगह रखते हैं, लेकिन HTTPHeader में हम क्या लिखते / लिखते हैं?
हनी

आपने उल्लेख किया था कि कुंजी डुप्लिकेट हो सकती है, फिर ऐसे डुप्लिकेट का परिणाम क्या है? क्या पिछला वाला स्वचालित रूप से पिछले मूल्य (ओं) को अधिलेखित कर देगा? धन्यवाद।
जिंगहुई नीउ

@JinghuiNiu यदि कुंजी डुप्लिकेट है तो इसे एक सरणी के रूप में पार्स किया जाना चाहिए। यह बहुत देर हो चुकी है लेकिन किसी और की मदद कर सकती है।
हनेश यासमल

18

HTTP POST में प्रपत्र मानों को अनुरोध निकाय में, उसी प्रारूप में क्वेरिस्ट्रिंग में भेजा जाता है।

अधिक जानकारी के लिए, युक्ति देखें ।


5
"समान प्रारूप" थोड़ा अस्पष्ट है। क्या वे ?उदाहरण के लिए शुरू करते हैं ?
कैमिलो मार्टिन

7
@PeterWooster हाँ, लेकिन एक उदाहरण प्रदान नहीं करता है। उस संबंध में, एक उत्तर की तरह है जो कहता है "देखो, एप्लिकेशन के ब्लॉग (लिंक) में आपके प्रश्न का उत्तर है "।
कैमिलो मार्टिन

36
@PeterWooster इसकी आवश्यकता नहीं है, लेकिन यह बहुत अच्छा है जब आप कुछ भूल जाते हैं, तो इसे Google करें, पहले लिंक पर जाएं जो SO है, और एक स्पष्ट, संक्षिप्त उदाहरण है जो बताता है कि आपको चबाने के लिए भेजने के बजाय आपको क्या चाहिए। अत्यधिक-विस्तृत चश्मा, जो कि व्यापक होने पर भी, रिफ्रेशर्स के लिए अयोग्य हो सकता है। इसके बारे में सोचें: इस साइट पर अधिकांश क्यूए "कल्पना / मैनुअल / एपीआई / आदि (लिंक) पढ़ने के लिए नीचे" उबाल सकते हैं । क्या यह उपयोगी होगा? Google से अधिक नहीं।
कैमिलो मार्टिन

2
केवल अगर सामग्री प्रकार है application/x-www-form-urlencoded, जो हमेशा मामला नहीं है।
गुफ़ा

3
GET क्वेरी स्ट्रिंग का प्रारूप अनुप्रयोग / x-www-form-urlencoded से भिन्न है। उदाहरण के लिए, व्हाट्सएप को अलग-अलग तरीके से एन्कोड किया गया है (% 20 बनाम +)। इस संबंध में उत्तर भ्रामक है।
अचिन्त्य वशीकरण

18

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

POST अनुरोध इस तरह दिख सकता है:

POST /?AuthId=YOURKEY&Action=WebServiceAction&Signature=rcLXfkPldrYm04 HTTP/1.1
Content-Type: text/tab-separated-values; charset=iso-8859-1
Content-Length: []
Host: webservices.domain.com
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: identity
User-Agent: Mozilla/3.0 (compatible; Indy Library)

name    id
John    G12N
Sarah   J87M
Bob     N33Y

यह दृष्टिकोण तार्किक रूप से क्वेरी- Content-Typeस्ट्रिंग और बॉडी-पोस्ट को एक एकल का उपयोग करके जोड़ता है जो वेब सर्वर के लिए "पार्सिंग-इंस्ट्रक्शन" है।

कृपया ध्यान दें: HTTP / 1.1 बाईं ओर (स्पेस) और दाईं ओर (लाइन फीड) के साथ लिपटे हुए है।#32#10


के बीच का अंतर /user/johnऔर /?user=johnकेवल एक अर्थ एक (HTTP वास्तव में क्वेरी स्ट्रिंग के लिए विशेष उपचार नहीं देता है) है, इसलिए मैं इस लेने के लिए उचित रूप से उम्मीद थी। लेकिन "बाईं ओर अंतरिक्ष से लिपटे" से आपका क्या मतलब है? HTTP विधि से पहले स्थान नहीं हैं। आप पोस्ट बॉडी के लिए रिक्त लाइन का मतलब है?
कैमिलो मार्टिन

उपरोक्त कोड के बीच ...Ym04और नीचे एक स्थान (ASCII # 32) है HTTP/1.1। तो एक QueryString क्रिया और प्रोटोकॉल संस्करण के बीच बस रहता है।
इंटरफ़ेस अज्ञात

1
आपका नोट यह ध्वनि करता है जैसे कि यह कुछ अप्रत्याशित और संस्करण-विशिष्ट है। बहुत स्पष्ट रूप से ऐसा लगता है कि वहाँ एक जगह है। और लाइन फ़ीड भी अन्य लाइनों पर लागू होता है, जैसे कि सभी चीजें यूनिक्स।
कैमिलो मार्टिन

1
मैंने सिर्फ इस बात पर जोर दिया कि मैं कोड में क्या नहीं लिख सकता। यह स्पष्ट लग सकता है लेकिन कभी-कभी ऐसा नहीं होता है।
इंटरफ़ेस अज्ञात

यह सही है कि हम यूआरआई और मापदंडों को URL के हिस्से के रूप में क्वेरी पैरामीटर पास कर सकते हैं ?जैसे कि हम GETअनुरोधों के साथ करते हैं।
जुग

8

सबसे पहले, के बीच अंतर करते हैं GETऔरPOST

प्राप्त करें: यह डिफ़ॉल्ट है HTTPअनुरोध है कि सर्वर के लिए किया जाता है और सर्वर और क्वेरी स्ट्रिंग है कि के बाद आता है से डेटा पुनः प्राप्त करने के लिए उपयोग ?में एक URIएक अनूठा संसाधन पुनः प्राप्त करने के लिए किया जाता है।

यह प्रारूप है

GET /someweb.asp?data=value HTTP/1.0

यहाँ data=valueक्वेरी स्ट्रिंग मान पारित किया गया है।

POST: इसका उपयोग सर्वर को सुरक्षित रूप से डेटा भेजने के लिए किया जाता है, जिसकी आवश्यकता होती है, यह एक POSTअनुरोध का प्रारूप है

POST /somweb.aspHTTP/1.0
Host: localhost
Content-Type: application/x-www-form-urlencoded //you can put any format here
Content-Length: 11 //it depends
Name= somename

GET पर POST क्यों?

में GETमूल्य सर्वरों के लिए भेजा जा रहा है आम तौर पर क्वेरी स्ट्रिंग में आधार URL में संलग्न कर रहे हैं, अब वहाँ इस के 2 परिणाम हैं

  • GETअनुरोध पैरामीटर के साथ ब्राउज़र इतिहास में सहेजे जाते हैं। तो आपके पासवर्ड ब्राउज़र इतिहास में अन-इनक्रिप्टेड रहते हैं। यह पिछले दिनों फेसबुक के लिए एक वास्तविक मुद्दा था।
  • आमतौर पर सर्वरों की सीमा होती है कि यह कितने समय तक URIहो सकता है। यदि आपके पास बहुत सारे पैरामीटर भेजे जा रहे हैं, तो आप प्राप्त कर सकते हैं414 Error - URI too long

पोस्ट रिक्वेस्ट के मामले में खेतों के बजाय आपके डेटा को शरीर से जोड़ा जाता है। अनुरोध पैरामेट्स की लंबाई की गणना की जाती है, और सामग्री-लंबाई के लिए हेडर में जोड़ा जाता है और कोई भी महत्वपूर्ण डेटा सीधे URL पर जोड़ा नहीं जाता है।

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

और आप हमेशा अपने में अधिक मान जोड़ सकते Request Headersकी तरह Cache-Control, Origin, Accept


4
सुरक्षा के बारे में धारणा केवल एक HTTPSकनेक्शन के संदर्भ में सच है , नहीं HTTPHTTPSencrypts URL(क्वेरी params सहित) और Request Body, जब HTTPencrypts / सुरक्षा न तो। वर्णित समस्या इस तथ्य से आती है कि कई ब्राउज़र अपने इतिहास डेटाबेस (आमतौर पर एन्क्रिप्टेड नहीं) में URIs(सहित URLs) संग्रहीत करते हैं । इसलिए, कुछ भी संवेदनशील के लिए केवल Request Body+ का उपयोग करें HTTPS
पेट्रू ज़हरिया

@PetruZaharia मैं आपके स्पष्टीकरण से सहमत हूं। आप इसे संपादित करने के रूप में भी सुझाव दे सकते हैं और मुझे स्वीकार करने में खुशी होगी! :)
जीशान आदिल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.