Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

Cách xử lý chuyển hướng

Một số ngôn ngữ lập trình có triển khai HTTP yêu cầu xử lý đặc biệt cho chuyển hướng.

Đáp lại yêu cầu API REST, máy chủ API Nest trả về chuyển hướng. Máy khách REST phát hiện chuyển hướng và yêu cầu trang mà máy khách được chuyển hướng đến. Một số triển khai HTTP không chuyển tiếp tiêu đề Ủy quyền tới URI được chuyển hướng và điều này dẫn đến lỗi 401 Không được ủy quyền.

Ví dụ: giả sử bạn yêu cầu foo.com. Máy chủ foo.com phản hồi bằng chuyển hướng đến bar.com. Người đưa thư hoặc Curl chuyển tiêu đề Ủy quyền đến foo và sau đó đến thanh. Các triển khai HTTP khác, chẳng hạn như của Golang và Python, không tự động chuyển tiêu đề Ủy quyền đến URI được chuyển hướng.

Làm thế nào nó hoạt động

Biểu đồ trình tự sau đây cho thấy điều gì sẽ xảy ra khi chuyển hướng xảy ra.

Chuỗi chuyển hướng

Để so sánh, đây là những gì sẽ xảy ra khi chuyển hướng không xảy ra.

Không có chuỗi chuyển hướng

Thí dụ

Nói chung, đó là một phương pháp viết mã tốt để dự đoán rằng việc triển khai HTTP của ngôn ngữ của bạn có thể không vượt qua tiêu đề Ủy quyền.

Mã của bạn sẽ ngăn chuyển hướng tự động và thực hiện cuộc gọi chuyển hướng sau khi thêm lại các tiêu đề.

Ví dụ, trong cờ vây, bạn có thể thực hiện điều này:

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

Để biết thêm các ví dụ, hãy xem:

Lưu trữ vị trí được chuyển hướng

Nó cũng là một phương pháp hay nhất để lưu trữ vị trí được chuyển hướng trên cơ sở mỗi người dùng. Nói cách khác, sau khi người dùng đăng nhập và nhận được chuyển hướng, hãy lưu trữ vị trí firebase-apiserver03-tah01-iad01.dapi.production.nest.com:9553/ và thực hiện tất cả các yêu cầu tiếp theo trực tiếp tới URI này.

Lưu trữ vị trí được chuyển hướng giúp tiết kiệm thời gian và tránh tải máy chủ không cần thiết.

Để tìm hiểu thêm về cách đổi hướng liên quan đến giới hạn tốc độ, xem Giới hạn Data Rate .

Sử dụng curl để kiểm tra API

Khi sử dụng curl> = v7.58, bạn có thể gặp lỗi 401 Trái phép từ các lệnh gọi tới API liên quan đến chuyển hướng. Kể từ curl v7.58, tiêu đề Ủy quyền tùy chỉnh không được chuyển tiếp đến URL chuyển hướng do API trả về.

Vào tài khoản này trên curl> = v7.58, sử dụng --location-trusted cờ với bất kỳ cuộc gọi dòng lệnh.