Il n'y a pas de différence entre les deux Uri du point de vue du client. Les uri sont opaques pour le client. Utilisation selon la valeur des cartes plus proprement dans votre serveur de côté les infrastructures.
Aussi loin que le RESTE, c'est il n'y a absolument aucune différence. Je crois que la raison pour laquelle tant de gens ne croient que c'est seulement la partie chemin qui identifie la ressource est à cause de la ligne suivante dans la RFC 2396
Le composant de requête est une chaîne de
informations pour être interprété par le
de la ressource.
Cette ligne a été changé plus tard dans la RFC 3986 :
Le composant de requête contient
non hiérarchique des données, ainsi que
données dans le composant de chemin d'accès (Section
3.3), sert à identifier une ressource
À mon humble avis, cela signifie à la fois la chaîne de requête et de segment de tracé sont fonctionnellement équivalent quand il s'agit de l'identification d'une ressource.
Mise à jour de l'adresse de Steve commentaire.
Pardonnez-moi si je m'oppose à l'adjectif "propre". Il est bien trop subjectif. Vous avez un point bien que j'ai manqué une partie importante de la question.
Je pense que la réponse à savoir si le retour 404 dépend de ce que la ressource est récupérée. Est-ce une représentation d'un résultat de recherche, ou est-il une représentation d'un produit? Pour savoir ce que vous vraiment besoin de regarder la relation de lien qui nous a conduit à l'URL.
Si l'URL est censé retourner un Produit, la représentation d'une 404 doit être retourné si le code n'existe pas. Si l'URL renvoie un résultat de recherche, alors il ne devrait pas retourner une erreur 404.
Le résultat final est que ce que l'URL ressemble n'est pas le facteur déterminant. Cela dit, c'est la convention que les chaînes de requête sont utilisées pour retourner des résultats de recherche de sorte qu'il est plus intuitif à utiliser que le style de l'URL lorsque vous ne voulez pas retourner une erreur 404.