9
votes

Une chaîne de requête est-elle valide?

En raison d'une mauvaise communication avec un partenaire d'affiliation, nous travaillons avec l'URL qu'ils appellent sur notre serveur a été mélangé.

C'est l'URL qu'ils sont censées appeler sur notre serveur: P>

 ?b=CCCCCCC/AAAAAAA


1 commentaires

J'aime comment le / a été analysé de l'URL pour cette question :-)


3 Réponses :


2
votes

Bien que je n'ai jamais eu de problème, ils ne sont pas techniquement autorisés conformément à RFC 2396 :

dans un composant de requête, les personnages ";", "/", "?", ":": "," @ "," & "," et ",", "et" $ " sont réservés.

Mais comme je l'ai dit ... Je n'ai jamais rencontré de problèmes. Je pense que c'est un problème avec les navigateurs plus âgés plus que tout, mais peut-être que quelqu'un puisse perdre une lumière sur un problème de ces causes?


4 commentaires

J'ai un peu pensé que techniquement, cela n'était pas autorisé (pour des raisons évidentes), mais j'aurais pensé que cela va bien être ok. Avec cela, je me demande si des thines funky peuvent survenir avec des proxies, des navigateurs plus anciens, des outils de sécurité, etc.


@Simon - Je n'ai pas encore trouvé de mauvais effets, mais mes utilisations sont généralement très spécifiques, par exemple. Connexion? RU = Route / Subroute / Catégorie / 45 .


Ok, j'espère que nous allons bien pendant une semaine. Merci - et étonné quelqu'un qui utilise réellement '/' a réussi à trouver ma question si rapidement!


Le lien fourni est mort,




11
votes

Selon RFC 3986: identifiant de ressource uniforme (URI): syntaxe générique (de Année 2005), oui, / code> est autorisé dans le composant de requête. C'est le BNF pour la chaîne de requête: (à l'annexe A dans RFC 3986 )

query         = *( pchar / "/" / "?" )
pchar         = unreserved / pct-encoded / sub-delims / ":" / "@"
  • Les caractères slash ("/") et point d'interrogation ("?") peuvent représenter des données dans le composant de requête em>. li>
  • comme composants de requête sont souvent utilisés pour transporter des informations d'identification sous la forme de paires "Key = Valeur" et une valeur fréquemment utilisée est une référence à une autre URI, elle est parfois meilleure pour une convivialité d'éviter pour cent -codage strong> ces caractères em> li> ul>

    Voici une question connexe: String de requête: Une chaîne de requête peut-elle contenir une URL contenant également des chaînes de requête? p> p>


1 commentaires

Cela devrait être la bonne réponse, car RFC 3986 est le remplacement de 2396.