क्या क्लाइंट को अलग तरह से व्यवहार करना चाहिए? कैसे?
क्या क्लाइंट को अलग तरह से व्यवहार करना चाहिए? कैसे?
जवाबों:
स्थिति 301 का अर्थ है कि संसाधन (पृष्ठ) को स्थायी रूप से एक नए स्थान पर ले जाया जाता है। क्लाइंट / ब्राउज़र को मूल स्थान का अनुरोध करने का प्रयास नहीं करना चाहिए लेकिन अब से नए स्थान का उपयोग करना चाहिए।
स्थिति 302 का मतलब है कि संसाधन अस्थायी रूप से कहीं और स्थित है, और क्लाइंट / ब्राउज़र को मूल यूआरएल का अनुरोध जारी रखना चाहिए।
जब कोई सर्च इंजन स्पाइडर किसी वेबपेज के रिस्पांस हेडर में 301 स्टेटस कोड पाता है, तो यह समझता है कि यह वेबपेज अब मौजूद नहीं है, यह प्रतिक्रिया के लिए लोकेशन हेडर की खोज करता है और नए URL को चुनता है और इंडेक्स किए गए URL को नए के साथ बदलता है और पेजरेंक भी ट्रांसफर करता है। ।
इसलिए खोज इंजन सभी अनुक्रमित URL को रीफ़्रेश करता है जो अब नए URL के साथ मौजूद नहीं है (301 पाया गया), यह आपके पुराने वेबपेज ट्रैफ़िक को बनाए रखेगा, पेजरेंक और इसे नए पर डायवर्ट करेगा (आप पुराने वेबपेज का ट्रैफ़िक नहीं खोएंगे)।
ब्राउज़र: यदि कोई ब्राउज़र 301 स्थिति कोड पाता है, तो वह नए URL के साथ पुराने URL की मैपिंग को कैश करता है, क्लाइंट / ब्राउज़र मूल स्थान का अनुरोध करने का प्रयास नहीं करेगा, लेकिन जब तक कैश साफ़ नहीं किया जाता है तब से नए स्थान का उपयोग करें।
जब एक खोज इंजन मकड़ी एक वेबपेज के लिए 302 स्थिति पाता है, तो यह केवल नए स्थान पर अस्थायी रूप से पुनर्निर्देशित करेगा और दोनों पृष्ठों को क्रॉल करेगा। पुराना वेबपेज URL अभी भी खोज इंजन डेटाबेस में मौजूद है और यह हमेशा पुराने स्थान का अनुरोध करने और इसे क्रॉल करने का प्रयास करता है। क्लाइंट / ब्राउज़र अभी भी मूल स्थान का अनुरोध करने का प्रयास करेगा।
इसके बारे में और अधिक पढ़ें कि इसे asp.net c # में कैसे लागू किया जाए और सर्च इंजन पर इसका क्या प्रभाव है - http://www.dotnetbull.com/2013/08/301-permanent-vs-302-temporary-status-code-aspnet -csharp-Implementation.html
खोज इंजनों में अनुक्रमण के लिए अधिकतर 301 बनाम 302 महत्वपूर्ण है, क्योंकि उनके क्रॉलर इसे ध्यान में रखते हैं और 301 का उपयोग करते समय पेजरैंक को स्थानांतरित करते हैं।
देखें पीटर ली की जवाब अधिक जानकारी के लिए।
301 यह है कि अनुरोधित संसाधन को एक नया स्थायी यूआरआई सौंपा गया है और इस संसाधन के किसी भी भविष्य के संदर्भ को लौटे यूआरआई में से एक का उपयोग करके किया जाना चाहिए।
302 यह है कि अनुरोधित संसाधन अस्थायी रूप से एक अलग URI के तहत रहता है।
चूंकि इस अवसर पर पुनर्निर्देशन को बदल दिया जा सकता है, ग्राहक को भविष्य के अनुरोधों के लिए अनुरोध-यूआरआई का उपयोग जारी रखना चाहिए।
यदि कैश-कंट्रोल या समाप्ति शीर्ष लेख फ़ील्ड द्वारा इंगित किया गया है तो यह प्रतिक्रिया केवल कैश करने योग्य है।
<?php header("location: http://example.com/new.php"); ?>
और फ़ाइल new.php - <?php echo 'I am new'; ?>
और करने के लिए जाना लिंक । "मैं नया हूं" पाठ को रीडायरेक्ट और प्रदर्शित करेगा। फिर कोड को old.php में बदलें <?php echo 'I am old'; ?>
और लिंक पर भी जाएं । आप "मैं बूढ़ा हो गया" पाठ देखूंगा। यदि आपने 301. को पुराने में रीडायरेक्ट किया है। तो आपने पुराने "एफपीपी के कोड में परिवर्तन के बाद भी" मैं नया हूँ "पाठ देखा होगा।
webcomic.com/latest
और webcomic.com/some-comic-title
301 के साथ पुनर्निर्देश करता है तो ब्राउज़र हमेशा "कुछ-कॉमिक-शीर्षक" पर पुनर्निर्देशित करेगा। यहां तक कि जब अगला कॉमिक प्रकाशित हुआ है और "नवीनतम" अब "एक और कॉमिक-शीर्षक" पर पुनर्निर्देशित करता है ... यह वह जगह है जहां 302 बेहतर होगा।
301 रीडायरेक्ट को अनिश्चित काल के लिए कैश किया जाता है (कम से कम कुछ ब्राउज़रों द्वारा)।
इसका मतलब है, यदि आप 301 सेट करते हैं, तो उस पृष्ठ पर जाएं, आप न केवल पुनर्निर्देशित हो जाते हैं, बल्कि यह पुनर्निर्देशन भी कैश हो जाता है।
जब आप फिर से उस पृष्ठ पर जाते हैं, तो आपका ब्राउज़र * उस URL का अनुरोध करने की जहमत नहीं उठाता है, यह सिर्फ कैश्ड पुनर्निर्देशन लक्ष्य पर जाता है।
कैश में उस पुनर्निर्देशन के साथ एक आगंतुक के लिए 301 पूर्ववत करने का एकमात्र तरीका मूल URL पर फिर से पुनर्निर्देशन है। उस स्थिति में, ब्राउज़र लूप को नोटिस करेगा, और अंत में वास्तव में दर्ज URL का अनुरोध करेगा।
जाहिर है, यह एक विकल्प नहीं है यदि आपने फेसबुक या किसी अन्य संसाधन को 301 करने का फैसला किया है जो आप पूरी तरह से नियंत्रण में नहीं हैं।
दुर्भाग्य से, कई होस्टिंग प्रदाता अपने व्यवस्थापक इंटरफ़ेस में एक सुविधा प्रदान करते हैं जिसे केवल "पुनर्निर्देशन" कहा जाता है, जो 301 पुनर्निर्देशित करता है। यदि आप इसे अपने डोमेन को अस्थायी रूप से जल्द ही आने वाले पृष्ठ के रूप में फेसबुक पर पुनर्निर्देशित कर रहे हैं, तो आप मूल रूप से खराब हो गए हैं।
* कम से कम क्रोम और फ़ायरफ़ॉक्स, कितनी देर तक ब्राउज़रों को HTTP 301s कैश करते हैं? । बस इसे क्रोम 45 के साथ आज़माया। संपादित करें: मैक पर सफारी 7.0.6 भी कैश करता है, एक ब्राउज़र रीस्टार्ट ने मदद नहीं की (लिंक का कहना है कि विंडोज पर सफारी 5 पर यह मदद करता है।)
** मैंने जावास्क्रिप्ट की कोशिश की window.location = ''
, क्योंकि यह समाधान होगा जो कि ज्यादातर मामलों में लागू किया जा सकता है - यह काम नहीं करता है। इसका परिणाम एक अनिर्दिष्ट अनंत लूप में होता है। हालाँकि, php header('Location: new.url')
लूप को तोड़ता है
नीचे पंक्ति: केवल 301 का उपयोग करें यदि आप पूरी तरह से सुनिश्चित हैं कि आप उस URL का फिर से उपयोग नहीं करने जा रहे हैं। आमतौर पर रूट dir पर कभी नहीं (example.com/)
301 के साथ मुख्य मुद्दा ब्राउज़र है जो सर्वर स्तर से पुनर्निर्देशन को अक्षम करने पर भी पुनर्निर्देशन को कैश करेगा।
यदि आप लघु रखरखाव विंडो के लिए पुनर्निर्देशन को सक्षम कर रहे हैं तो इसका हमेशा 302 उपयोग करना बेहतर होगा।