Sólo acotar que en javascript existe document.referrer. Pero no es, al igual que en el servidor, una variable confiable, ya que no siempre estará disponible.
Otra cosa: se pueden simular sesiones en javascript usando window.name para almacenar información (hasta 32mb). Eso en navegadores antiguos, en navegadores modernos puede usarse
sessionStorage