HTTPURLConnection-Umleitungen: Protokolleinschränkungen
Java's HttpURLConnection bietet eine bequeme Möglichkeit, HTTP-Anfragen zu senden, aber beim Umgang mit Weiterleitungen hält es sich an bestimmte Regeln. Eine solche Regel besagt, dass Weiterleitungen nur dann befolgt werden, wenn die Ziel-URL dasselbe Protokoll wie die ursprüngliche Anfrage verwendet.
Im gegebenen Beispiel ist die ursprüngliche URL eine HTTP-URL („http://httpsstat.us/ 301“) und die Weiterleitungs-URL eine HTTPS-URL („https://https://stat.us“) ist. Die HttpURLConnection folgt dieser Umleitung nicht, da HTTPS als ein anderes Protokoll als HTTP betrachtet wird. Dieses Verhalten ist in der Methode followRedirect() fest codiert und bietet keine Möglichkeit, diese Prüfung zu deaktivieren.
Diese Protokolleinschränkung ist auf Sicherheitsbedenken zurückzuführen. Während HTTPS oft als sichere Alternative zu HTTP angesehen wird, wird HTTPS aus der Perspektive des HTTP-Protokolls als separates und unbekanntes Protokoll behandelt. Das Zulassen unbestätigter Weiterleitungen zu HTTPS würde potenzielle Risiken mit sich bringen. Wenn beispielsweise die automatische Client-Authentifizierung konfiguriert ist und die anfängliche Anfrage HTTP-basiert ist, könnte die Identität des Clients versehentlich dem Server preisgegeben werden, wenn der Umleitung zu HTTPS blind gefolgt wird.
Das obige ist der detaillierte Inhalt vonWarum folgt Javas HttpURLConnection nicht Weiterleitungen zwischen HTTP und HTTPS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!