URL ET ROUTAGE

Tester URLPatternrepérer le composant qui bloque

Une URL par ligne, un motif pour tous les cas. Choisissez le moteur sous les champs de saisie.

Tester URLPattern

Motif

URL candidates

URL et motifs sont traités dans ce navigateur. Les adresses saisies ne sont jamais appelées.

Résultats de correspondance

Saisissez au moins une URL candidate.

Options de correspondance

URLPattern : * accepte toute valeur ; un champ vide exige un composant vide. Les détails montrent les captures indépendantes même si l’URL entière échoue.

La base résout les candidats et motifs textuels relatifs. Elle n’ajoute pas de conditions aux motifs par composants.

Limites : 512 unités par motif, 200 URL, 2 048 par URL/base, 131 072 unités UTF-16 au total ; worker limité à 2 secondes.

Résultats périmés ou calcul en cours.

Tester URLPattern permet de garder ensemble les adresses attendues et les contre-exemples. Un autre hôte ou une barre oblique finale peut suffire à changer le résultat : modifiez une condition à la fois pour comprendre pourquoi.

Les modèles de routage ne vérifient pas tous une adresse entière. Examinez les groupes nommés et les caractères génériques dans le moteur choisi. La correspondance des URL ne prouve ni l’existence d’un point d’accès ni le choix d’un gestionnaire côté serveur.

Pourquoi Tester URLPattern ici

Localiser la différence

Tester URLPattern distingue le résultat global des diagnostics indépendants des huit composants. Le nom d’hôte peut échouer alors que le chemin capture une id. Cette capture partielle sert au diagnostic ; elle ne constitue pas un résultat exec global réussi.

Un motif relié à trois lignes de candidats, avec un seul composant en échec sur la ligne centrale.

Vérifier si l’hôte intervient

Une condition hostname exclut les autres hôtes. L’adaptateur de routes ne lit que pathname : une adresse sur un autre hôte peut donc correspondre au même chemin. Gardez les deux cas pour voir la portée réelle du moteur.

Deux listes identiques : le contrôle de l’URL entière rejette l’hôte différent, celui du chemin accepte les deux candidats.

Choisir la grammaire avant le motif

01

Distinguer champ vide et étoile

Les huit champs sont transmis explicitement en mode composants. * accepte toute valeur ; un champ vide impose un composant vide. L’URL de base résout les candidats sans ajouter de contrainte d’hôte au motif.

02

Vérifier la version du routeur

path-to-regexp v8 utilise la syntaxe des chemins Express 5. Les parties facultatives prennent des accolades, les jokers un nom. Changer de moteur conserve les entrées et ne traduit pas leur grammaire.

03

Attendre le résultat actuel

Le mode automatique démarre après 350 ms sans modification. Sinon, utilisez le bouton ou Ctrl/Cmd + Enter. Toute modification bloque immédiatement l’ancien export. Ouvrez les détails d’une ligne avant de sauvegarder.

Lire les composants et les captures

Des versions identifiées

Tester URLPattern utilise urlpattern-polyfill 10.1.0 et path-to-regexp 8.4.2. Le rapport conserve versions, options et entrées. Tous les navigateurs utilisent le même polyfill ; cet outil ne mesure pas leur implémentation native.

La structure des captures est conservée

Les groupes URLPattern restent séparés par composant, sans décodage supplémentaire. Une capture facultative absente devient null. Les jokers nommés de route produisent normalement des tableaux ; désactiver le décodage préserve leur chaîne brute.

L’adresse résolue reste visible

Les candidats relatifs utilisent l’URL de base. Le rapport conserve l’original et l’adresse normalisée : suppression du port par défaut, normalisation de l’hôte et résolution des segments avec points deviennent observables avant la comparaison.

Les erreurs gardent leur ligne

Une URL invalide ou un échec de décodage n’empêche pas de vérifier les autres candidats. Une erreur de compilation du motif arrête le traitement. L’affichage avance par 50 lignes ; le JSON contient toutes les lignes, erreurs comprises.

Périmètre et limites du test

Deux grammaires distinctes
URLPattern accepte :id? et des contraintes comme :id(\d+). La version 8 des routes utilise des accolades pour les parties facultatives et des jokers nommés comme *path. Une ancienne syntaxe peut provoquer une erreur de compilation.
La requête garde son ordre
search exclut le ? initial, hash exclut le # initial. Les paramètres ne sont ni triés ni comparés comme un ensemble. L’adaptateur ne teste que pathname ; hôte, requête et fragment ne participent pas.
Normalisation et décodage diffèrent
Le parseur URL normalise les hôtes, ports par défaut et segments avec points. Les captures URLPattern restent encodées. Un paramètre de route mal encodé produit une erreur de ligne si le décodage est actif ; désactivez-le pour inspecter la valeur brute.
Pas de nettoyage implicite
Les lignes vides sont ignorées ; doublons, espaces et numéros d’origine sont conservés. Les caractères de contrôle et Unicode mal formé sont refusés. Si le parseur normalise des espaces périphériques, l’entrée originale reste dans le rapport.
Calcul limité
Chaque motif ou composant accepte 512 unités UTF-16, chaque URL ou base 2 048, et l’entrée totale 131 072. La limite est de 200 candidats non vides et 2 secondes par worker. Aucun rapport de réussite partielle n’est produit en cas de dépassement.
Aucune simulation d’application
Méthodes HTTP, middleware, ordre des routes et autres frameworks restent hors périmètre. L’outil ne charge pas les URL, ne réécrit pas les chemins et ne propose ni import de fichier, ni historique, ni lien contenant les entrées.

Tester URLPattern : questions fréquentes

Quelle différence avec path-to-regexp v8 ?

URLPattern vérifie huit composants selon sa propre grammaire. Ici, v8 vérifie uniquement le chemin, exige un nom après * et utilise des accolades pour les parties facultatives. Il ne reproduit pas une application Express complète.

L’ordre des paramètres de recherche compte-t-il ?

Oui. a=1&b=2 et b=2&a=1 sont deux chaînes search différentes. Le test ne crée pas de collection non ordonnée. Pour ignorer la requête entière, mettez * dans search.

La comparaison distingue-t-elle la casse ?

Oui par défaut. L’option permet de l’ignorer. Toutefois, le parseur normalise déjà les noms d’hôte ; utilisez /users/42 et /USERS/42 pour tester la casse du chemin.

Pourquoi le port par défaut ne figure-t-il pas dans les captures ?

Avec HTTPS, :443 est normalisé en un port vide. Un groupe nommé obligatoire ne peut pas capturer la valeur originale depuis ce composant vide. Consultez l’adresse résolue et le motif effectif du port.

Pourquoi une barre oblique finale change-t-elle le résultat ?

URLPattern n’ajoute pas de barre facultative : /users/:id ne correspond pas à /users/42/. L’adaptateur de routes autorise le séparateur final par défaut ; vous pouvez désactiver cette option.

Un cas de route vous surprend ?

Comparer un succès et un contre-exemple

Gardez une adresse censée réussir et une censée échouer. Changez une contrainte, examinez les composants, puis exportez le rapport actuel.