Google มุ่งมั่นที่จะพัฒนาความเท่าเทียมทางเชื้อชาติสำหรับชุมชนคนผิวดำ มาดูกันว่า
หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

วิธีจัดการกับการเปลี่ยนเส้นทาง

ภาษาการเขียนโปรแกรมบางภาษามีการใช้งาน HTTP ที่ต้องการการจัดการพิเศษสำหรับการเปลี่ยนเส้นทาง

เพื่อตอบสนองต่อคำขอ REST API เซิร์ฟเวอร์ Nest API จะส่งคืนการเปลี่ยนเส้นทาง ไคลเอ็นต์ REST ตรวจพบการเปลี่ยนเส้นทางและร้องขอหน้าเว็บที่ลูกค้าถูกเปลี่ยนเส้นทางไป การประยุกต์ใช้ HTTP บางอย่างไม่ส่งต่อส่วนหัวการอนุญาตไปยัง URI ที่ถูกเปลี่ยนเส้นทางและสิ่งนี้ส่งผลให้เกิดข้อผิดพลาด 401 ที่ไม่ได้รับอนุญาต

ตัวอย่างเช่นสมมติว่าคุณขอ foo.com เซิร์ฟเวอร์ foo.com ตอบกลับด้วยการเปลี่ยนเส้นทางไปที่ bar.com บุรุษไปรษณีย์หรือ Curl ส่งส่วนหัวการอนุญาตเพื่อ foo แล้วไปที่แถบ การใช้งาน HTTP อื่น ๆ เช่น Golang's และ 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
    },
}

ดูตัวอย่างเพิ่มเติมได้ที่:

จัดเก็บตำแหน่งที่เปลี่ยนเส้นทาง

นอกจากนี้ยังเป็นวิธีปฏิบัติที่ดีที่สุดในการจัดเก็บตำแหน่งที่เปลี่ยนเส้นทางตามจำนวนผู้ใช้ กล่าวอีกนัยหนึ่งหลังจากที่ผู้ใช้ลงชื่อเข้าใช้และได้รับการเปลี่ยนเส้นทางให้เก็บ firebase-apiserver03-tah01-iad01.dapi.production.nest.com:9553/ ที่ตั้งและทำการร้องขอที่ตามมาทั้งหมดโดยตรงไปยัง URI นี้

การจัดเก็บตำแหน่งที่เปลี่ยนเส้นทางจะช่วยประหยัดเวลาและป้องกันการโหลดเซิร์ฟเวอร์ที่ไม่จำเป็น

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการเปลี่ยนเส้นทางที่เกี่ยวข้องกับการ จำกัด อัตราโปรดดูที่ การ จำกัด อัตราข้อมูล

ใช้ curl เพื่อทดสอบ API

เมื่อใช้ curl> = v7.58 คุณอาจได้รับข้อผิดพลาด 401 ที่ไม่ได้รับอนุญาตจากการโทรไปยัง API ที่เกี่ยวข้องกับการเปลี่ยนเส้นทาง ตั้งแต่ curl v7.58 ส่วนหัวการให้สิทธิ์ที่กำหนดเองจะไม่ถูกส่งต่อไปยัง URL การเปลี่ยนเส้นทางที่ส่งคืนโดย API

ในการอธิบายเกี่ยวกับสิ่งนี้ใน curl> = v7.58 ให้ใช้ --location-trusted กับการเรียกบรรทัดคำสั่งใด ๆ