2009-03-04 29 views

Respuesta

7

No es válido utilizar? de nuevo. ? debe indicar el inicio de la lista de parámetros. & debe separar los parámetros.

De RFC 3986:

URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ] 

De RFC 1738:

una URL HTTP toma la forma:

http:// <host> : <port>/<path> ? <searchpart> 

donde <host> y <port> son como se describe en la Sección 3.1. Si se omite :<port> , el puerto predeterminado es 80. No se permite ningún nombre de usuario o contraseña . <path> es un selector HTTP y <searchpart> es una cadena de consulta . El <path> es opcional, como es el <searchpart> y su que precede a "?". Si no están presentes <path> ni <searchpart>, también se puede omitir el "/" .

Dentro de los componentes <path> y <searchpart>, "/", ";", "?" son reservados. El carácter "/" se puede usar dentro de HTTP para designar una estructura jerárquica .

El search part/query part is described here.

1

application/x-www-form-urlencoded

Este es el tipo de contenido predeterminado. Los formularios enviados con este tipo de contenido se deben codificar de la siguiente manera:

  1. Los nombres y valores de control se escapan. Los caracteres espaciales se reemplazan por +, y los caracteres reservados se escapan como se describe en [RFC1738], sección 2.2: los caracteres no alfanuméricos se reemplazan por %HH, un signo de porcentaje y dos dígitos hexadecimales que representan el código ASCII del carácter. Los saltos de línea se representan como pares "CR LF" (es decir, %0D%0A).
  2. Los nombres/valores de control se enumeran en el orden en que aparecen en el documento. El nombre está separado del valor por = y los pares de nombre/valor están separados entre sí por &.

- application/x-www-form-urlencoded

0

Como se ha mencionado, no es válida para usarlo de nuevo. Sin embargo, si tienes el? carácter como parte de un valor de parámetro, puede codificarlo como% 63 (al igual que el carácter de espacio codificado como% 20).