Necesito saber cuáles serán los caracteres válidos en un ID de sesión o, en particular, si pueden tener espacios en él.?
"ID de sesión" es un concepto general utilizado en muchos lugares. Es "un nombre para una sesión". Cada vez que tiene una sesión y desea designarlo (por ejemplo, en un mensaje en un protocolo de red), lo que use para designarlo es el "ID de sesión". Puede contener cualquier carácter o octeto que dicho protocolo diga que puede contener.
Cada protocolo es libre de definir las cosas cuando lo considere oportuno. En el caso de SSL , por ejemplo, hay una noción de "sesión" y los "identificadores de sesión" utilizados por el protocolo son secuencias de 1 a 32 bytes (todos los valores de bytes de 0 a 255 son aceptables, pero no habrá más de 32 bytes). En el caso de PHP , que también tiene una noción de sesión, el "protocolo" es un acuerdo entre PHP, el código del sitio y un módulo de PHP llamado "manejador de sesión"; allí, las ID de sesión son secuencias de caracteres , y el controlador de sesión puede imponer algunas limitaciones, que dependen del controlador de sesión específico en vigor.
Lea otras preguntas en las etiquetas session-management