HTTPURLConnection 不遵循HTTP 到HTTPS 重定向
在某些情況下,開發人員會遇到意外行為,即Java 的HTTPURLConnection無法遵循HTTP 重定向到HTTPS URL。
原因問題
此行為的根本原因在於 HTTPURLConnection 的設計。預設情況下,只有在保持相同協定的情況下才會遵循重定向。這意味著該類別不會自動處理從 HTTP 到 HTTPS 的重定向。
安全影響
出於安全考慮,強制執行此限制。儘管 HTTPS 與 HTTP 相似,但從技術角度來看,HTTPS 被認為是一種不同的協定。在未經使用者批准的情況下遵循 HTTPS 重定向會引發安全性問題,特別是在自動設定 HTTP 而不是 HTTPS 的用戶端驗證的情況下。
解決方案
不幸的是,沒有選項禁用此檢查,因此無法使 HTTPURLConnection 遵循 HTTP 到 HTTPS重定向。
解決方法
要解決此限制,開發人員可以透過解析 HTTP 回應中的 Location 標頭並向 HTTPS 發起新請求來手動遵循重定向網址。或者,他們可以利用支援 HTTP 和 HTTPS 重定向的函式庫或框架。
以上是為什麼 HTTPURLConnection 不遵循 HTTP 到 HTTPS 的重定向?的詳細內容。更多資訊請關注PHP中文網其他相關文章!