Domänennamen aus URLs extrahieren
Diese Frage zielt darauf ab, Domänennamen effektiv aus URLs zu extrahieren. Obwohl der bereitgestellte Java-Code scheinbar einigermaßen funktioniert, erkundigt sich der Autor nach überlegenen Techniken oder potenziellen Grenzfällen, die seine Zuverlässigkeit beeinträchtigen könnten.
Alternative Implementierung mit java.net.URI
Es wird ein saubererer Ansatz zum Parsen von URLs empfohlen, indem die Klasse java.net.URI anstelle von java.net.URL verwendet wird. Letzteres weist bekannte Probleme auf, wie zum Beispiel die problematische Methode „equals“, die den Code in Szenarien mit nicht vertrauenswürdigen Eingaben Schwachstellen aussetzen kann:
public static String getDomainName(String url) throws URISyntaxException { URI uri = new URI(url); String domain = uri.getHost(); return domain.startsWith("www.") ? domain.substring(4) : domain; }
Diese verbesserte Methode sollte Domänennamen effektiv abrufen und gleichzeitig Grenzfälle mit falscher Groß-/Kleinschreibung oder verarbeiten Variationen im Präfix „www“.
Zusätzliche zu berücksichtigende Randfälle
Der Originalcode berücksichtigt bestimmte URL-Formate nicht:
Um diese Randfälle anzugehen, sollten Sie einen Verweis auf Anhang B von RFC 3986 in Betracht ziehen, der einen umfassenden regulären Ausdruck zum Parsen von URI-Referenzen und deren Aufteilung in einzelne Komponenten bereitstellt.
Das obige ist der detaillierte Inhalt vonSo extrahieren Sie Domänennamen zuverlässig aus URLs: Alternative Techniken und Randfälle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!