首頁 > Java > java教程 > 為什麼 Java 的 HttpURLConnection 不遵循 HTTP 和 HTTPS 之間的重定向?

為什麼 Java 的 HttpURLConnection 不遵循 HTTP 和 HTTPS 之間的重定向?

DDD
發布: 2024-12-06 16:22:16
原創
681 人瀏覽過

Why Doesn't Java's HttpURLConnection Follow Redirects Between HTTP and HTTPS?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板