首页 > 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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板