uniforme sirve significado recursos qué que para identificador funciona ejemplos definicion como caracteristicas url encoding freemarker restlet

sirve - Un recurso de url que es un punto(% 2E)



url significado (2)

En realidad, no está claramente establecido en el estándar ( RFC 3986 ) si es una versión con porcentaje de codificación . o .. se supone que tiene el mismo significado de esta carpeta / up-a-folder como la versión no guardada. La Sección 3.3 solo habla sobre "Los segmentos de ruta" . y .. ", sin aclarar si coinciden . y .. antes o después de la codificación de pct.

Personalmente encuentro la interpretación de Firefox que %2E no significa . más práctico, pero desafortunadamente todos los demás navegadores no están de acuerdo. Esto significa que no puede tener un componente de ruta que solo contenga . o ..

¡Creo que la única sugerencia posible es "no hagas eso"! Existen otros componentes de ruta que también son problemáticos, normalmente debido a limitaciones del servidor: las secuencias %2F , %00 y %5C en las rutas también pueden ser bloqueadas por algunos servidores web, y el segmento de ruta vacío también puede causar problemas. Por lo tanto, en general, no es posible ajustar todas las secuencias de bytes posibles en un componente de ruta.

Tengo un recurso que es a . Esto significa que mi URL se ve así: http://myapp/index/ . Y necesito agregar parámetros de consulta para que se vea así: http://myapp/index/.?type=xml Utilizo Freemarker para la presentación de mis recursos e hice un hack de codificación porcentual para este caso:

<#if key?matches("//.")> <li><a href="${contextPath}/index/%2E">${key}</a></li> </#if>

Esto funciona bien para Firefox. Pero todos los demás navegadores como IE, Safari, Chrom, Opera simplemente ignoran mi punto codificado en la url ( http://myapp/index/ ).

¿Alguna sugerencia?


No es posible. §2.3 dice que "." es un carácter no reservado y que "los URI que difieren en el reemplazo de un carácter no reservado con su correspondiente octeto US-ASCII codificado en porcentaje son equivalentes". Por lo tanto, /%2E%2E/ es lo mismo que /../ , y eso se normalizará.

(Esta es una combinación de una respuesta por bobince y un comentario de slowpoison).