Google is committed to advancing racial equity for Black communities. See how.

रीडायरेक्ट को कैसे हैंडल करें

कुछ प्रोग्रामिंग भाषाओं में HTTP कार्यान्वयन होते हैं जिन्हें रीडायरेक्ट के लिए विशेष हैंडलिंग की आवश्यकता होती है।

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

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

यह काम किस प्रकार करता है

निम्न अनुक्रम आरेख दिखाता है कि रीडायरेक्ट होने पर क्या होता है।

पुनर्निर्देशन अनुक्रम

तुलना के लिए, यहां बताया गया है कि जब कोई रीडायरेक्ट नहीं होता है तो क्या होता है।

कोई रीडायरेक्ट अनुक्रम नहीं

उदाहरण

आम तौर पर, यह अनुमान लगाने के लिए एक अच्छा कोडिंग अभ्यास है कि आपकी भाषा का HTTP कार्यान्वयन प्राधिकरण शीर्षलेख को पारित नहीं कर सकता है।

आपके कोड को स्वचालित रीडायरेक्ट को रोकना चाहिए और हेडर को वापस जोड़ने के बाद रीडायरेक्ट कॉल करना चाहिए।

उदाहरण के लिए, गो में, आप यह कर सकते हैं:

customClient := http.Client {
    CheckRedirect: func(redirRequest *http.Request, via []*http.Request)
    error {
        // Go's http.DefaultClient does not forward headers when a redirect 3xx
        // response is received. Thus, the header (which in this case contains the
        // Authorization token) needs to be passed forward to the redirect
        // destinations.
        redirRequest.Header = req.Header

        // Go's http.DefaultClient allows 10 redirects before returning an
        // an error. We have mimicked this default behavior.s
        if len(via) >= 10 {
            return errors.New("stopped after 10 redirects")
        }
        return nil
    },
}

अधिक उदाहरणों के लिए देखें:

पुनर्निर्देशित स्थान स्टोर करें

प्रति उपयोगकर्ता के आधार पर पुनर्निर्देशित स्थान को संग्रहीत करना भी एक सर्वोत्तम अभ्यास है। दूसरे शब्दों में, उपयोगकर्ता द्वारा साइन इन करने और रीडायरेक्ट प्राप्त होने के बाद, firebase-apiserver03-tah01-iad01.dapi.production.nest.com:9553/ स्थान संग्रहीत करें और बाद के सभी अनुरोध सीधे इस यूआरआई को करें।

पुनर्निर्देशित स्थान को संग्रहीत करने से समय की बचत होती है और अनावश्यक सर्वर लोड को रोकता है।

के बारे में कैसे रीडायरेक्ट दर सीमित करने से संबंधित अधिक जानकारी के लिए देखने के डाटा दर सीमा

एपीआई का परीक्षण करने के लिए कर्ल का उपयोग करना

कर्ल> = v7.58 का उपयोग करते समय, आपको एपीआई में कॉल से 401 अनधिकृत त्रुटियां मिल सकती हैं जिसमें रीडायरेक्ट शामिल हैं। कर्ल v7.58 के अनुसार, कस्टम प्राधिकरण शीर्षलेख एपीआई द्वारा लौटाए गए रीडायरेक्ट यूआरएल पर अग्रेषित नहीं किए जाते हैं।

कर्ल> = v7.58, पर इस बात के लिए खाते के लिए उपयोग --location-trusted किसी भी कमांड लाइन कॉल के साथ झंडा।