Pregunta

Tengo una URL larga con varios valores.

Ejemplo 1:

http://www.domain.com/list?seach_type[]=0&search_period[]=1&search_min=3000&search_max=21000&search_area=6855%3B7470%3B7700%3B7730%3B7741%3B7742%3B7752%3B7755%3B7760%3B7770%3B7800%3B7840%3B7850%3B7860%3B7870%3B7884%3B7900%3B7950%3B7960%3B7970%3B7980%3B7990%3B8620%3B8643%3B8800%3B8830%3B8831%3B8832%3B8840%3B8850%3B8860%3B8881%3B9620%3B9631%3B9632

Mi área de búsqueda variable contiene sólo 4 dígitos de los números (ejemplo 4000, 5000), pero puede contener una gran cantidad de ellos. Ahora mismo separados estos en la URL mediante el uso de ; como símbolo separador. Aunque como se ve en el Ejemplo 1, la; se convierte en %3B. Esto me hace creer que este es un mal símbolo para su uso.

¿Cuál es la mejor separador de URL?

¿Fue útil?

Solución

Bueno, según RFC1738 , URLs válidos únicamente pueden contener las letras a - z , el signo más ( + ), el período y guión ( - ).

En general, me gustaría ir con un plus para separar sus áreas de búsqueda. Por lo que su URL se convertiría en http: // www .dominio.com / lista? seach_type = 0 & search_period = 1 & search_min = 3000 y search_max = 21000 y search_area = 6855 + 7470 + 7700 + ...

- Editar -

Como GinoA señaló leí mal el documento. Por lo tanto "$-_.+!*'()," son caracteres válidos también. Todavía iría con el signo + sin embargo.

Otros consejos

Moontear, creo que usted ha leído mal la ligado documento . Esta limitación sólo se aplica a la porción de "esquema" de la URL. En el caso de WWW URL, que es el "http".

La siguiente sección del documento continúa diciendo:

  

Por lo tanto, sólo los caracteres alfanuméricos, los caracteres especiales "$ -_. +! * '()", Y      caracteres reservados utilizados para sus fines reservados pueden ser usados      sin codificar dentro de un URL.

Me personalmente uso coma (,). Sin embargo, más (+) y el guión (-). Son las dos opciones razonables, así

BTW, ese documento también menciona que punto y coma (;). Está reservado en algunos esquemas

Si sólo hay números para separar, que tiene una gran variedad de separadores. Se puede elegir cualquier letra, por ejemplo.

Es probable que un espacio puede ser una opción buena. Se transformó en el personaje + en la URL, por lo que será más fácil de leer que una carta.

Ejemplo: search_area=4000+5000+6000

"+" ha de interpretarse como un espacio "" cuando el tipo de contenido es application / x-www-form-urlencoded (estándar para formularios HTML). Esto puede ser manejado por el software del servidor.

Yo prefiero "!". No puede ser codificado en URL (al menos no en Chrome) y se reserva "+" para su uso como un verdadero carácter de espacio en el caso típico.

Estoy muy tarde a la fiesta, pero una cadena de consulta válida puede repetir variables de lo que en lugar de ...

http://x.y.z/list?type=0&period=1&min=3000&max=21000&area=6855+7470+7700

... también se puede utilizar ...

http://x.y.z/list?type=0&period=1&min=3000&max=21000&area=6855&area=7470&area=7700
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top