> Java > java지도 시간 > Java의 HttpURLConnection이 HTTP에서 HTTPS로의 리디렉션을 따르지 못하는 이유는 무엇입니까?

Java의 HttpURLConnection이 HTTP에서 HTTPS로의 리디렉션을 따르지 못하는 이유는 무엇입니까?

DDD
풀어 주다: 2024-12-06 21:28:17
원래의
475명이 탐색했습니다.

Why Does Java's HttpURLConnection Fail to Follow HTTP to HTTPS Redirects?

HTTP에서 HTTPS로의 HTTP 리디렉션으로 인해 연결 실패가 발생함

Java의 HttpURLConnection을 사용하여 HTTP에서 HTTPS로의 리디렉션을 따르려고 하면 예기치 않게 오류가 발생할 수 있습니다. 실패하다. 이 문제는 HttpURLConnection의 followRedirect() 메서드가 동일한 프로토콜 내의 리디렉션만 따르기 때문에 발생합니다.

제공된 코드에서 "http://httpstat.us/301"에 대한 요청이 이루어지며 301 Moved를 반환합니다. URL의 HTTPS 버전으로의 리디렉션을 나타내는 영구적인 응답입니다. 그러나 HttpURLConnection은 이 리디렉션을 따르지 않습니다.

왜 이런 일이 발생합니까? HTTP와 HTTPS는 HTTP 프로토콜 사양에 따라 별도의 프로토콜로 간주됩니다. HTTPS가 HTTP를 밀접하게 반영하더라도 HTTP 프레임워크 내에서 공식적인 인식이 부족합니다. 따라서 추가 구성 없이 HttpURLConnection은 보안상의 이유로 HTTPS를 별도의 프로토콜로 처리하도록 설계되었습니다.

사용자 동의 없이 HTTP와 HTTPS 간에 리디렉션을 수행하면 보안 위험이 발생할 수 있습니다. 예를 들어 HTTP 연결에 대해 클라이언트 인증이 자동으로 활성화될 수 있지만 사용자는 익명으로 탐색하려고 할 수 있습니다. 연결이 자동으로 HTTPS 리디렉션을 따르는 경우 사용자의 신원이 서버에 실수로 노출될 수 있습니다.

따라서 보안을 유지하기 위해 HttpURLConnection은 기본적으로 HTTP에서 HTTPS로의 리디렉션을 따르지 않습니다. 이 동작은 비활성화할 수 없으며 Java 프로그램에서 HTTP 리디렉션 작업을 수행할 때 이 제한 사항을 인식하는 것이 중요합니다.

위 내용은 Java의 HttpURLConnection이 HTTP에서 HTTPS로의 리디렉션을 따르지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿