& es el símbolo and y sirve para pasar más de una variable. un parámetro
?variable=1&variable=2
El símbolo % sirve para "codificar" una URL
«%» (ASCII 25 hex): Se usa para la codificación de caracteres «extraños».
«/» (ASCII 2F hex): Se usa para delimitar subfragmentos de texto que dependen por herencia (vamos, lo que conocemos como «carpetas» o «niveles»). También se definía lo mismo con un punto (.) o dos puntos (..).
«#» (ASCII 23 hex): Se usa como delimitador para separar la URL de un objeto de un identificador.
«?» (ASCII 3F hex): Se usa como delimitador de la URI de un objeto «consultable» (vamos, un parámetro). En estos parámetros el símbolo «+» se usaría como «unión». En el caso de tener que poner un símbolo «+» habría que codificarlo.
«*» (ASCII 2A hex) y «!» (ASCII 21 hex) se reservan para significados distintos según el schema pertinente (es decir, según el protocolo que se use: HTTP, Telnet, Mail, Gopher…).