Maison > Java > javaDidacticiel > le corps du texte

Comment extraire de manière fiable les noms de domaine des URL en Java ?

Susan Sarandon
Libérer: 2024-11-02 01:52:30
original
848 Les gens l'ont consulté

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

Extraire des noms de domaine à partir d'URL

Étant donné une URL, l'extraction du nom de domaine est une tâche courante dans le développement Web et le traitement de données. Cependant, cela peut être difficile en raison de la complexité de la syntaxe des URL et des cas extrêmes potentiels.

Dans cette discussion, nous proposons une solution Java qui extrait les noms de domaine des URL et résout les pièges potentiels et les cas extrêmes :

Solution Java améliorée

La solution fournie utilise java.net.URI au lieu de java.net.URL pour analyser les URL :

<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>
Copier après la connexion

Cette approche évite plusieurs problèmes avec java.net .URL, comme sa vulnérabilité aux attaques par déni de service et son manque de prise en charge des URL relatives.

Gestion des cas extrêmes

La solution originale échoue dans plusieurs cas extrêmes, notamment :

  • URL relatives : URL sans schéma (par exemple, "http://google.com").
  • Protocole insensible à la casse : URL dont le protocole n'est pas en minuscules (par exemple, "HTTP://example.com").
  • URL relatives au protocole : URL sans schéma commençant par "//".
  • URL relatives avec le composant de chemin "www" : URL avec un chemin relatif qui commence par "www".
  • Noms de domaine qui commencent par "www" mais pas "www." : URL dont les noms de domaine comportent des caractères avant "www".

Solution d'expression régulière

Pour les URL avec des formats complexes et potentiellement invalides, vous pouvez utiliser une expression régulière basée sur l'annexe B de la RFC 3986. Cependant, cette approche est plus complexe et peut ne pas gérer correctement tous les cas extrêmes.

Conclusion

L'extraction de noms de domaine à partir d'URL nécessite une attention particulière prise en compte de la syntaxe de l'URL et des cas extrêmes potentiels. La solution Java fournie résout bon nombre de ces problèmes et garantit une extraction fiable des noms de domaine. Lors du traitement d'URL plus complexes ou d'entrées non valides, un analyseur basé sur des expressions régulières peut être nécessaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!