HTTP रिक्वेस्ट हैडर में अनिवार्य जानकारी क्या होनी चाहिए?


जवाबों:


36

GET / HTTP/1.0 एक कानूनी HTTP अनुरोध है।

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

HTTP 1.1 Hostक्षेत्र की आवश्यकता है ।


1
मैंने खुद पर थोड़ा शोध किया और आप सही हैं @gbroiles। नाम आधारित वर्चुअल होस्टिंग के लिए सामान्य रूप से HTTP 1.1 के साथ एक ब्राउज़र की आवश्यकता होती है। ब्राउज़र होस्ट हेडर में होस्टनाम भेजता है और यदि कॉन्फ़िगर किया जाता है तो वेब सर्वर नाम आधारित वर्चुअल होस्ट का नाम देता है। पुराने ब्राउज़रों और HTTP 1.0 के साथ, जो कुछ हद तक संभव है, लेकिन आपको अपाचे के सर्वरपैथ डायरेक्टिव जैसे वर्कअराउंड की आवश्यकता है। सौभाग्य से नए ब्राउज़र होस्ट हेडर फ़ील्ड भेजने के लिए HTTP 1.0 का उपयोग करते समय एक्सटेंशन लागू करते हैं। w3.org/Protocols/rfc2616/rfc2616-sec14.html
Stephan Kristyn

1
क्या अभी भी ब्राउज़र हैं जो वास्तव में HTTP 1.0 करते हैं?
पचेरियर

बहुत से उपयोगकर्ता एजेंट HTTP 1.0 का उपयोग करते हैं। वेब ब्राउज़र का उपयोग करने वाले लोग HTTP 1.1 या 2.0 का उपयोग करेंगे जहां संभव हो लेकिन वे एक प्रॉक्सी के माध्यम से पहुंच सकते हैं जो केवल HTTP 1.0 का समर्थन करता है। क्रॉलर या बॉट HTTP 1.0 का उपयोग कर सकते हैं। सरल क्लाइंट जैसे wgetHTTP 1.0 का उपयोग करते हैं। ध्यान दें कि HTTP 1.0 क्लाइंट का समर्थन करने के लिए किसी भी प्रयास सर्वर-साइड की आवश्यकता नहीं है, क्योंकि एक HTTP 1.1 अनुपालन सर्वर HTTP 1.0 क्लाइंट का समर्थन करेगा (HTTP 1.1 HTTP 1.0 के शीर्ष पर एक प्रगतिशील वृद्धि के लिए बनाया गया है; गैर-संगत सुविधाएँ जैसे chunk; एन्कोडिंग और रखने-जीवित डिफ़ॉल्ट HTTP 1.0 अनुरोधों के लिए बंद)।
thomasrutter

3

HTTP हेडर में से कोई भी अनुरोध में आवश्यक नहीं है। कोई आवश्यक रिस्पांस हेडर भी नहीं हैं।

HTTP 1.1 और RFC 2616 में वह सब कुछ और


15
आपको ग़लतफहमी हुई है। आपके द्वारा यहां लिंक किए गए RFC के अनुसार: "एक क्लाइंट को सभी HTTP / 1.1 अनुरोध संदेशों में होस्ट हेडर फ़ील्ड शामिल करना चाहिए"। तो Hostहैडर है अनिवार्य।
user219882

2
सही है, लेकिन इसकी कोई आवश्यकता नहीं है कि क्लाइंट पहले स्थान पर HTTP / 1.1 का उपयोग करे।
क्रिस एस

2
सामग्री-लंबाई या स्थानांतरण-एन्कोडिंग केवल तभी अनिवार्य है जब किसी इकाई को अनुरोध या प्रतिक्रिया के साथ वितरित किया जाता है, और कई मामलों में अनुरोध या प्रतिक्रिया में एक इकाई (जैसे जीईटी अनुरोध, या 302 प्रतिक्रिया) की कमी होगी।
ब्रैंडन रोड्स

6
मैं नीचे नहीं जा सकता, लेकिन यह जवाब गलत है। कृपया ठीक करें या निकालें।
वाइकिंगस्टेव

4
मैं वाइकिंगस्टेव से सहमत हूं। आपका उत्तर बताता है कि HTTP 1.1 के पास कोई आवश्यक हेडर नहीं है।
nullstellensatz
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.