HTTPURLConnection 重定向:協定限制
Java 的HttpURLConnection 提供了一種發送HTTP 請求的便捷方式,但是在處理重定向時,它遵循某些特定的規則。規則。其中一條規則是,只有當目標 URL 使用與原始請求相同的協定時,才會遵循重定向。
在給定的範例中,原始 URL 是 HTTP URL(「http://httpstat.us/ 301」),重定向 URL 是 HTTPS URL(「https://httpstat.us」)。 HttpURLConnection 不遵循此重定向,因為 HTTPS 被視為與 HTTP 不同的協定。此行為被硬編碼在 followRedirect() 方法中,無法停用此檢查。
此協定限制源自於安全問題。雖然 HTTPS 通常被認為是 HTTP 的安全替代方案,但從 HTTP 協定的角度來看,HTTPS 被視為獨立且不熟悉的協定。允許未經驗證的重定向到 HTTPS 會帶來潛在風險。例如,如果配置了自動用戶端身份驗證且初始請求是基於 HTTP 的,則如果盲目地重定向到 HTTPS,則用戶端的身份可能會無意中洩露給伺服器。
以上是為什麼 Java 的 HttpURLConnection 不遵循 HTTP 和 HTTPS 之間的重定向?的詳細內容。更多資訊請關注PHP中文網其他相關文章!