रिश्तेदार स्थान हेडर का उपयोग करने के लिए परिणाम क्या हैं?


17

युक्ति के अनुसार , रीडायरेक्ट में प्रयुक्त लोकेशन हेडर को सर्वर नाम की आवश्यकता होती है

HTTP/1.1 301 Moved Permanently
...
Location: http://example.com/foo/baz/bar

हालांकि, 2012 में, अधिकांश वेब ब्राउज़र एक रिश्तेदार पथ को पहचान लेंगे और मूल सर्वर नाम का उपयोग करके आपको नए स्थान पर रीडायरेक्ट करेंगे

HTTP/1.1 301 Moved Permanently
...
Location: /foo/baz/bar

क्या स्थान शीर्षलेखों में संबंधित URL का उपयोग करने के कोई नकारात्मक / आश्चर्यजनक परिणाम हैं? मेरी विशेष चिंता यह है कि Google / खोज-इंजन इसकी व्याख्या कैसे करेंगे, लेकिन अगर ऐसा कुछ और है, जिसके बारे में मैं नहीं सोच रहा हूं तो मैं इसे सुनना पसंद करूंगा।


क्या आप उस सटीक बिट को उद्धृत कर सकते हैं जिससे आप उस आवश्यकता को प्राप्त कर रहे हैं? चुनौतीपूर्ण नहीं है, मैं इसे तुरंत नहीं देखता और इसे खोजने के लिए पूरे RFC को पढ़ने का मन नहीं करता। इसके अलावा, आप HTTP 1.0 युक्ति का हवाला दे रहे हैं लेकिन अपने उदाहरणों में HTTP 1.1 हेडर का उपयोग कर रहे हैं। (जो अनुमत सामग्री को बदल सकता है या नहीं भी कर सकता है।)
सु

10.11 अनुभाग। tools.ietf.org/html/rfc1945#page-44 मेरे ज्ञान में भी कुछ नहीं है, 1.1 कल्पना में कि "इसे ठीक करता है"।
एलन स्टॉर्म

जवाबों:


15

HTTP / 1.1 मानक, RFC 2616 के वर्तमान संस्करण के अनुसार, Locationहेडर का मान एक पूर्ण URI होना चाहिए

हालाँकि, HTTPbis वर्किंग ग्रुप द्वारा तैयार किए गए ड्राफ्ट मानक में अंततः RFC 2616 को बदलने के लिए, इसे रिश्तेदार URI के रूप में अच्छी तरह से अनुमति देने के लिए बदल दिया गया है, क्योंकि :

"लोकेशन हेडर की परिभाषा [RFC 2616 में] अलग-अलग तरीकों से भिन्न होती है कि वेब पर सामग्री के साथ हस्तक्षेप करने के लिए कम से कम वेब ब्राउज़र को उनसे कैसे निपटना है"

व्यवहार में, AFAIK बस सभी प्रमुख ब्राउज़रों और खोज इंजनों के बारे में समझता है और HTTP रीडायरेक्ट को सापेक्ष URL को स्वीकार करता है। हालांकि, जब तक HTTPbis ड्राफ्ट किसी दिन आधिकारिक मानक नहीं बन जाता और व्यापक रूप से अपनाया जाता है, तब तक कुछ नए या अस्पष्ट उपयोगकर्ता एजेंट होंगे जो वर्तमान मानक को पत्र पर लागू करते हैं और केवल पूर्ण URL स्वीकार करते हैं। इस प्रकार, अब के लिए सुरक्षित बात, केवल Locationहेडर में निरपेक्ष URL का उपयोग करना है , जैसा कि Postel के कानून द्वारा सुझाया गया है :

"आप जो भेजते हैं उसमें रूढ़िवादी रहें, जो आप स्वीकार करते हैं उसमें उदारता।"


3
RFC 2616 को अब 7231 द्वारा मान लिया गया है, जो कि लोकेशन हेडर में सापेक्ष URL की अनुमति देता है। मानक को लागू करने वाले उपयोगकर्ता एजेंट अब सापेक्ष URL स्वीकार करेंगे
ZoFreX

6

एचटीटीपी 1.1 आरएफसी http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30 की धारा 14.30 काफी अलग नहीं है। मुझे नहीं पता कि आप इसके लिए कोई वास्तविक व्यावहारिक सीमाएँ देखने जा रहे हैं।

केवल एक बार मैंने इस मुद्दे के बारे में एक चेतावनी भी देखी है जब मैं लिंक्स में परीक्षण करता था और स्थान निरपेक्ष नहीं था, यह आपको "स्थान मान पूर्ण नहीं" चेतावनी देगा - लेकिन अगर मुझे सही याद है तो यह अभी भी आपको जाने देगा नए स्थान पर। मैंने अभी-अभी लिंक्स 2.8.7 का परीक्षण किया है और ऐसा प्रतीत होता है कि यह अब ऐसा नहीं करता है, हालाँकि यह एक कॉन्फ़िगरेशन समस्या हो सकती है।

अब, आप कहते हैं:

मेरी विशेष चिंता यह है कि Google / खोज-इंजन इसकी व्याख्या कैसे करेंगे, लेकिन अगर ऐसा कुछ और है, जिसके बारे में मैं नहीं सोच रहा हूं तो मैं इसे सुनना पसंद करूंगा।

मेरा मानना ​​है कि यह एक परीक्षा का वारंट है। मैं एक url सेट करूँगा, इसे अपनी साइट के xml साइटमैप में डालूँगा , और आपके द्वारा वर्णित के अनुसार url एक पुनर्निर्देशित होगा। मुझे लगता है कि करने की बात यह है कि Google वेबमास्टर टूल्स का उपयोग करके इसे जांचें और देखें कि क्या नकारात्मक परिणाम हैं।

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