2010-07-28 10 views

उत्तर

34

आपका मतलब है कि ब्राउज़र इसे कैसे प्रबंधित करते हैं? सर्वर कोड Location शीर्षलेख के साथ भेजता है, और ब्राउजर Location हेडर द्वारा निर्दिष्ट नए यूआरआई को अनुरोध करता है।

301 (Moved Permanently) के विपरीत, ब्राउज़र, मूल URI का उपयोग करने के लिए अनुरोध करने के लिए जारी है मामले में 302 कोड दूर

+3

ध्यान दें कि कुछ साल पहले तक, ब्राउज़र 301 को कैश नहीं करता था। अब, क्रोम करता है और मुझे विश्वास है कि फ़ायरफ़ॉक्स करता है। आईई 9 होगा। – josh3736

+0

ताकि यदि कोई ब्राउज़र अनुरोध नहीं कर रहा है (और इसका एक आवेदन) तो http https पर स्वचालित रूप से रीडायरेक्ट नहीं होगा। आपको अपनी अनुरोध स्ट्रिंग को मैन्युअल रूप से https में बदलना होगा। – ozzy432836

+0

मैं उलझन में हूँ। क्या आपका मतलब है कि HTTP 301 ब्राउज़र को उनके इतिहास में रीडायरेक्ट लक्ष्य को स्टोर करने और पुराने यूआरएल को हटाने के लिए निर्देश देगा? क्योंकि आप विपरीत कह रहे हैं। – Pieter

2

क्या के आंतरिक जाता है? 302 एक रिटर्न कोड है जो सर्वर क्लाइंट देता है, ग्राहक क्या करता है। आरएफसी ग्राहक क्या करना चाहिए, इस पर मार्गदर्शन देते हैं, लेकिन असली दुनिया में 301, 302, 303 और 307 सभी मुख्यधारा के ब्राउज़र द्वारा समान तरीके से संभाले जाते हैं।

+1

मैंने देखा है कि आईई 8 और आईई 9 अलग-अलग व्यवहार करते हैं जब स्थान हेडर एक पूर्ण यूआरआई निर्दिष्ट नहीं करता है ... उपयोगकर्ता – felickz

12

सर्वर 302 कोड के साथ एक HTTP प्रतिक्रिया देता है, जो अस्थायी पुनर्निर्देशन को इंगित करता है, और इसमें Location: हेडर शामिल है जो नए यूआरआई को इंगित करता है, उदा।

HTTP/1.1 302 Found 
Location: http://some-other-url 

और संभावित रूप से सर्वर के विवेकानुसार अन्य शीर्षलेख।

ब्राउजर आमतौर पर स्थान शीर्षलेख द्वारा निर्दिष्ट अन्य यूआरआई के लिए एक नया, अलग अनुरोध करने के निर्देश के रूप में इसे लेता है। क्लाइंट (ब्राउजर) को को ऐसा करने के लिए मजबूर नहीं किया गया है (यह सिद्धांत रूप में, उपयोगकर्ता को केवल एक संदेश प्रदर्शित कर सकता है, या जो कुछ भी चाहता है) कर सकता है, लेकिन इस तरह HTTP क्लाइंट आमतौर पर व्यवहार करते हैं।

ध्यान दें कि जब से 302 एक अस्थायी पुनर्निर्देशन, एक अच्छी तरह से व्यवहार ग्राहक नहीं बल्कि नया तक जाया जा सकता (301 एक स्थायी रीडायरेक्शन है) की तुलना में, भविष्य में पुराने URL उपयोग करने के लिए जारी रहेगा है।

+0

संकेत से सावधान रहें: गहन समझ के लिए यह उत्तर पढ़ें। – erbdex

9

से: http://www.ietf.org/rfc/rfc2616.txt और http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

10.3.3 302 मिली

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

अस्थायी यूआरआई प्रतिक्रिया में स्थान क्षेत्र द्वारा दिया जाना चाहिए। जब तक अनुरोध विधि HEAD नहीं थी, प्रतिक्रिया की इकाई में को नए यूआरआई (हाइपरलिंक) के साथ एक हाइपरलिंक वाला एक छोटा हाइपरटेक्स्ट नोट होना चाहिए।

302 स्थिति कोड अन्य GET या HEAD की तुलना में एक अनुरोध के जवाब में प्राप्त होता है, तो उपयोगकर्ता एजेंट नहीं स्वचालित रूप से अनुरोध यदि इसे उपयोगकर्ता द्वारा पुष्टि की जा सकती, रीडायरेक्ट करना चाहिए के बाद से इस के तहत की स्थिति बदल सकती है जो अनुरोध जारी किया गया था।

Note: RFC 1945 and RFC 2068 specify that the client is not allowed 
    to change the method on the redirected request. However, most 
    existing user agent implementations treat 302 as if it were a 303 
    response, performing a GET on the Location field-value regardless 
    of the original request method. The status codes 303 and 307 have 
    been added for servers that wish to make unambiguously clear which 
    kind of reaction is expected of the client. 
1

बस एक Addon- महत्वपूर्ण रूप से, यह बंद ग्राहक लगातार/अक्सर एक ही अनुरोध के साथ एक ही सर्वर यूआरएल को हिट करने के लिए है।

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