HTTPURLConnection 리디렉션: 프로토콜 제한
Java의 HttpURLConnection은 HTTP 요청을 보내는 편리한 방법을 제공하지만 리디렉션을 처리할 때 특정 규칙을 준수합니다. 규칙. 그러한 규칙 중 하나는 대상 URL이 원래 요청과 동일한 프로토콜을 사용하는 경우에만 리디렉션을 따른다는 것입니다.
주어진 예에서 원래 URL은 HTTP URL("http://httpstat.us/ 301")이고 리디렉션 URL은 HTTPS URL("https://httpstat.us")입니다. HTTPS는 HTTP와 다른 프로토콜로 간주되므로 HttpURLConnection은 이 리디렉션을 따르지 않습니다. 이 동작은 followRedirect() 메서드에 하드코딩되어 있어 이 확인을 비활성화할 수 있는 방법을 제공하지 않습니다.
이 프로토콜 제한은 보안 문제에서 비롯됩니다. HTTPS는 종종 HTTP에 대한 안전한 대안으로 간주되지만, HTTP 프로토콜 관점에서 보면 HTTPS는 별도의 익숙하지 않은 프로토콜로 취급됩니다. 확인되지 않은 HTTPS로의 리디렉션을 허용하면 잠재적인 위험이 발생할 수 있습니다. 예를 들어, 자동 클라이언트 인증이 구성되고 초기 요청이 HTTP 기반인 경우 HTTPS로의 리디렉션이 맹목적으로 수행되면 클라이언트의 신원이 서버에 실수로 노출될 수 있습니다.
위 내용은 Java의 HttpURLConnection이 HTTP와 HTTPS 간의 리디렉션을 따르지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!