Heim  >  Artikel  >  Java  >  Wie können Sie Domänennamen zuverlässig aus URLs in Java extrahieren?

Wie können Sie Domänennamen zuverlässig aus URLs in Java extrahieren?

Susan Sarandon
Susan SarandonOriginal
2024-11-02 01:52:30849Durchsuche

How Can You Reliably Extract Domain Names from URLs in Java?

Domänennamen aus URLs extrahieren

Bei einer gegebenen URL ist das Extrahieren des Domänennamens eine häufige Aufgabe in der Webentwicklung und Datenverarbeitung. Dies kann jedoch aufgrund der Komplexität der URL-Syntax und möglicher Grenzfälle eine Herausforderung darstellen.

In dieser Diskussion stellen wir eine Java-Lösung bereit, die Domänennamen aus URLs extrahiert und potenzielle Fallstricke und Grenzfälle behebt:

Verbesserte Java-Lösung

Die bereitgestellte Lösung verwendet java.net.URI anstelle von java.net.URL zum Parsen von URLs:

<code class="java">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;
}</code>

Dieser Ansatz vermeidet mehrere Probleme mit java.net .URL, beispielsweise aufgrund der Anfälligkeit für Denial-of-Service-Angriffe und der fehlenden Unterstützung für relative URLs.

Umgang mit Randfällen

Die ursprüngliche Lösung schlägt bei mehreren Randfällen fehl, darunter:

  • Relative URLs: URLs ohne Schema (z. B. „http://google.com“).
  • Protokoll ohne Berücksichtigung der Groß-/Kleinschreibung: URLs, bei denen das Protokoll nicht in Kleinbuchstaben geschrieben ist (z. B. „HTTP://example.com“).
  • Protokollrelative URLs: URLs ohne Schema, die mit „//“ beginnen.
  • Relative URLs mit „www“-Pfadkomponente: URLs mit einem relativen Pfad, der mit „www“ beginnt.
  • Domainnamen, die mit „www“ beginnen aber nicht „www.“: URLs mit Domänennamen, die vor „www“ führende Zeichen haben.

Lösung für reguläre Ausdrücke

Für URLs mit komplexen und möglicherweise ungültigen Formaten: Sie können einen regulären Ausdruck verwenden, der auf Anhang B von RFC 3986 basiert. Dieser Ansatz ist jedoch komplexer und behandelt möglicherweise nicht alle Randfälle korrekt.

Fazit

Das Extrahieren von Domänennamen aus URLs erfordert Vorsicht Berücksichtigung der URL-Syntax und potenzieller Randfälle. Die bereitgestellte Java-Lösung behebt viele dieser Probleme und gewährleistet eine zuverlässige Extraktion von Domänennamen. Bei der Verarbeitung komplexerer URLs oder ungültiger Eingaben kann ein auf regulären Ausdrücken basierender Parser erforderlich sein.

Das obige ist der detaillierte Inhalt vonWie können Sie Domänennamen zuverlässig aus URLs in Java extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn