Notice: We're retiring Works with Nest. See the home page for more information.
Google is committed to advancing racial equity for Black communities. See how.
דף זה תורגם על ידי Cloud Translation API.
Switch to English

כיצד לטפל בניתוב מחדש

בחלק משפות התכנות יש יישומי HTTP הדורשים טיפול מיוחד להפניות מחדש.

בתגובה לבקשת REST API, שרת ה- API של Nest מחזיר ניתוב מחדש. לקוח REST מזהה את ההפניה מחדש ומבקש את הדף שאליו הופנה הלקוח. יישומי HTTP מסוימים אינם מעבירים את כותרת ההרשאה ל- URI המנותב, וכתוצאה מכך שגיאה 401 לא מורשית.

לדוגמה, נניח שאתה מבקש foo.com. שרת foo.com מגיב בהפניה מחדש ל- bar.com. דוור או תלתל מעבירים את כותרת ההרשאה ל- foo ואז לסרגל. יישומים אחרים של HTTP, כגון Golang ו- Python, אינם מעבירים אוטומטית את כותרת ההרשאה ל- URI המנותב.

איך זה עובד

דיאגרמת הרצף שלהלן מראה מה קורה כאשר מתרחשת הפניה מחדש.

רצף הפניה מחדש

לשם השוואה, הנה מה שקורה כאשר ניתוב מחדש לא מתרחש.

אין רצף ניתוב מחדש

דוגמא

באופן כללי, זהו שיטת קידוד טובה לצפות כי יישום HTTP של השפה שלך עשוי לא לעבור את כותרת ההרשאה.

הקוד שלך אמור למנוע את הפניה מחדש אוטומטית ולבצע את שיחת ההפניה מחדש לאחר הוספת הכותרות חזרה.

לדוגמה, ב- Go, אתה יכול לעשות זאת:

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
    },
}

לקבלת דוגמאות נוספות ראו:

שמור את המיקום המנותב מחדש

זוהי גם השיטה הטובה ביותר לאחסן את המיקום המנותב על בסיס משתמש. במילים אחרות, לאחר שמשתמש נכנס ונכנס לניתוב מחדש, אחסן את המיקום-apiserver03-tah01-iad01.dapi.production.nest.com:9553/ מיקום והגש את כל הבקשות הבאות ישירות ל- URI זה.

אחסון המיקום המנותב חוסך זמן ומונע עומס מיותר של שרתים.

למידע נוסף על קישור הפניות מחדש להגבלת קצב, ראה מגבלות קצב נתונים .

באמצעות תלתל לבדיקת ה- API

כשאתה משתמש בתלתל> = v7.58, אתה עלול לקבל 401 שגיאות לא מורשות משיחות ל- API הכרוכות בניתוב מחדש. נכון לתלתל v7.58, כותרות הרשאה מותאמות אישית אינן מועברות לכתובת האתר להפניה מחדש המוחזרת על ידי ה- API.

כדי להסביר זאת על תלתל> = v7.58, השתמש --location-trusted עם כל שיחות שורת פקודה.