Je me demande si je dois utiliser des matrices ou des paramètres de requête dans mes URL. J'ai trouvé un ancien discussion à ce sujet n'est pas satisfaisante.
Exemples
- URL avec les paramètres de la requête : http://some.where/thing?paramA=1¶mB=6542
- URL avec des paramètres de matrice : http://some.where/thing;paramA=1;paramB=6542
À première vue, les paramètres de la matrice semblent n'avoir que des avantages :
- plus lisible
- aucun encodage ni décodage de "&" dans les documents XML n'est nécessaire
- Les URL avec " ?" ne sont pas mis en cache dans de nombreux cas ; les URL avec des paramètres de matrice sont mis en cache.
- les paramètres de la matrice peuvent apparaître partout dans le chemin et ne sont pas limités à son extrémité
- les paramètres de la matrice peuvent avoir plus d'une valeur :
paramA=val1,val2
Mais il y a aussi des inconvénients :
- seuls quelques cadres comme JAX-RS paramètres de la matrice de soutien
- Lorsqu'un navigateur soumet un formulaire via GET, les paramètres deviennent des paramètres de requête. Il s'agit donc de deux types de paramètres pour la même tâche. Pour ne pas dérouter les utilisateurs des services REST et limiter les efforts des développeurs de ces services, il serait plus simple d'utiliser toujours des paramètres de requête - dans ce domaine.
Étant donné que le développeur du service peut choisir un cadre de travail prenant en charge les paramètres de matrice, le seul inconvénient restant serait que les navigateurs créent par défaut des paramètres de requête.
Y a-t-il d'autres inconvénients ? Que feriez-vous ?
12 votes
Je ne vois pas très bien où est le problème avec les URL matricielles. Selon l'article du w3c sur la conception que TBL a écrit, il s'agissait simplement d'une idée de conception et il est explicitement indiqué qu'il s'agit de no une caractéristique du web. Des choses comme les URL relatives ne sont pas mises en œuvre lorsqu'on l'utilise. Si vous voulez l'utiliser, c'est très bien ; il n'y a simplement pas de méthode standard pour l'utiliser parce que ce n'est pas une norme.
3 votes
@Steve Pomeroy : Est-ce que c'est l'article que vous mentionnez : w3.org/DesignIssues/MatrixURIs.html
4 votes
@Marcel : oui. Pour ceux qui pensent à des URLs matricielles, notez le "Statut : vue personnelle" en haut du document.
0 votes
Les paramètres de la matrice peuvent-ils avoir plus d'une valeur ? vraiment ?
0 votes
Les paramètres de la requête peuvent également avoir plusieurs valeurs : some.where/thing?paramA=1¶mA=6542