Je viens de trouver une autre anomalie d'Osmose: quand on clique sur le lien en bas à droite pour générer un "Permalink", le lien généré contient des caractères URLencodés (notamment les virgules qui séparent par exemple les "item=1060,6060&level=1,2,3", remplacées par "%2C".
Cependant le serveur Osmose ne semble pas interpréter correctement ces paramètres et du coup il sont ignorés et la carte apparaît avec une sélection de toutes les erreurs possibles et de tous les niveaux de gravité. Osmose devrait accepter "%2C" (même s'il accepte aussi "," qui n'a pas réellement besoin d'être URL-encodé, contrairement aux caractères non-ASCII ou certaines ponctuations ASCII réservées par la syntaxe des URL, la virgule n'en faisant pas partie), simplement en faisant un URL-décodage des paramètres présents dans la "querystring". Si on "corrige" manuellement le Permalien en remplaçant les "%2C" par des virgules, la requête fonctionne et la carte est correcte. Bref le parsing des requêtes web demande une correction. Le lien généré en cliquant "Permanlink" pourait aussis se passer d'UTR-encoder les virgules (mais ce n'est pas une erreur de le faire, les navigateurs URL-encodent les requêtes web souvent au delà de ce qui est nécessaire) ---- Note: le serveur devrait aussi accepter les caractères non-ASCII codés en UTF-8 non URL-encodé, même s'il accepte aussi l'UTF-8 URL-encodé : tout URL-encodage valide sous la forme %XX avec deux caractères hexadécimaux devrait marcher pour toute valeur entre "%20" et "%FE", et pour certains contrôles ASCII comme la tabulation "%09", et les sauts de ligne "%0A", "%0D", les codes hexadécimaux devant marcher aussi avec les lettres minuscules; l'URL-décodage se fait après avoir séparé les paramètres dans la querystring en détectant les "&" séparateurs, puis le découpage name=value en reconnaissant le premier "="; il reste alors les noms et valeurs à UTL-décoder individuellement. Le serveur devrait aussi accepter les requêtes de type POST où il ne sont pas URL-encodés dans la querystring (comme dans les requêtes GET) mais encodés dans le corps sous un format MIME classique (où plusieurs codages sont possibles dont l'URL-encoding, ou le Base64 plus compact). En général les serveurs web du marché font tous ça automatiquement, mais Osmose n'est pas un simple serveur Apache ou PHP et visiblement il fait un traitement simplifié qui ne respecte pas complètement les normes courantes.
_______________________________________________ Talk-fr mailing list Talk-fr@openstreetmap.org https://lists.openstreetmap.org/listinfo/talk-fr