Je ne vois pas beaucoup de différence entre les paramètres et les chaînes de requête, dans l'URL. Alors, quelle est la différence et quand faut-il utiliser l'un par rapport à l'autre?
91
Je ne vois pas beaucoup de différence entre les paramètres et les chaînes de requête, dans l'URL. Alors, quelle est la différence et quand faut-il utiliser l'un par rapport à l'autre?
Réponses:
Le composant de requête est indiqué par le premier
?
dans un URI. "Chaîne de requête" peut être un synonyme (ce terme n'est pas utilisé dans la norme URI).Quelques exemples d'URI HTTP avec des composants de requête:
( liste des caractères autorisés dans le composant de requête )
Le "format" du composant de requête appartient aux auteurs de l'URI. Une convention courante ( mais rien de plus qu'une convention, en ce qui concerne la norme URI ¹) est d'utiliser le composant de requête pour les paires clé-valeur, aka. paramètres , comme dans le dernier exemple ci - dessus:
bar1=a&bar2=b
.De tels paramètres pourraient également apparaître dans les autres composants URI, c'est-à-dire le chemin² et le fragment. En ce qui concerne la norme URI, c'est à vous de décider quel composant et quel format utiliser.
Exemple d'URI avec des paramètres dans le chemin, la requête et le fragment:
¹ La norme URI dit à propos du composant de requête :
² La norme URI dit à propos du composant de chemin :
la source
Les paramètres sont des paires clé-valeur qui peuvent apparaître dans le chemin de l'URL et commencer par un caractère point-virgule (
;
).La chaîne de requête apparaît après le chemin (le cas échéant) et commence par un caractère de point d'interrogation (
?
).Les paramètres et la chaîne de requête contiennent des paires clé-valeur.
Dans une
GET
requête, les paramètres apparaissent dans l'URL elle-même:Dans une
POST
requête, les paramètres peuvent apparaître dans l'URL elle-même, mais également dans le flux de données (appelé contenu).La chaîne de requête fait toujours partie de l'URL.
Les paramètres peuvent être enterrés dans le
form-data
flux de données lors de l'utilisation de la méthode POST afin qu'ils n'apparaissent pas dans l'URL. Oui, unePOST
requête peut définir des paramètres en tant que données de formulaire et dans l'URL, et cela n'est pas incohérent car les paramètres peuvent avoir plusieurs valeurs.Je n'ai trouvé aucune explication pour ce comportement jusqu'à présent. Je suppose qu'il peut être utile parfois de "montrer" les paramètres d'une
POST
requête, ou même de laisser le code gérant uneGET
requête partager certaines parties avec le code gérant unPOST
. Bien sûr, cela ne peut fonctionner qu'avec le code serveur prenant en charge les paramètres dans une URL.Jusqu'à ce que vous obteniez de meilleures informations, je vous suggère d'utiliser les paramètres uniquement dans le
form-data
flux de données desPOST
demandes.Sources:
Ce que chaque développeur doit savoir sur les URL
RFC 3986
la source