Plusieurs paramètres dans la requête http get
-
03-07-2019 - |
Question
Les URL du formulaire sont-elles http://asdf.com/something.do ? param1 = true? param2 = false valide?
Je ne pense pas à la seconde? est autorisé dans les URL valides et qu'il devrait s'agir d'une esperluette (& amp;); Des idées?
La solution
Il n'est pas valide d'utiliser? encore. ? devrait indiquer le début de la liste de paramètres. & amp; devrait séparer les paramètres.
De la RFC 3986 :
URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
De la RFC 1738 :
Une URL HTTP prend la forme suivante:
http:// <host> : <port> / <path> ? <searchpart>
où
<host>
et<port>
sont tels que décrits dans la section 3.1. Si:<port>
est omis, le port par défaut est 80. Aucun nom d'utilisateur ni mot de passe n'est permis.<path>
est un sélecteur HTTP et<searchpart>
est une requête chaîne. Le <=> est facultatif, de même que le <=> et ses " précédent?? " Si ni <=> ni <=> ne sont présents, le & Quot; / & Quot; peut également être omis.Parmi les composants <=> et <=>, & "; &", & "; <;>"; "!", & "; &" sont réservé. Le & Quot; / & Quot; caractère peut être utilisé dans HTTP pour désigner un structure hiérarchique.
Autres conseils
utilisez & amp; pour les deuxième et troisième
i.e. http://asdf.com/something.do?param1=true < !> amp; param2 = false
application / x-www-form-urlencoded
Ceci est le type de contenu par défaut. Les formulaires soumis avec ce type de contenu doivent être codés comme suit:
- Les noms de contrôle et les valeurs sont échappés. Les caractères d'espacement sont remplacés par
+
, puis les caractères réservés sont échappés comme décrit dans la section [RFC1738], section 2.2: Les caractères non alphanumériques sont remplacés par%HH
, un signe de pourcentage et deux chiffres hexadécimaux représentant le code ASCII du caractère. . Les sauts de ligne sont représentés par & Quot; CR LF & Quot; paires (c'est-à-dire,%0D%0A
).- Les noms / valeurs de contrôle sont listés dans l'ordre dans lequel ils apparaissent dans le document. Le nom est séparé de la valeur par
=
et les paires nom / valeur sont séparées l'une de l'autre par&
.& # 8212; application / x-www-form- code url
Comme mentionné, il n'est pas valide de l'utiliser à nouveau. Cependant, si vous avez le? caractère faisant partie d’une valeur de paramètre, vous pouvez le coder sous la forme% 63 (tout comme le caractère espace qui est codé sous la forme% 20).