The http referer is only sent when a user clicks a link or fills out a form or is sent via a header location direction, and that really is only true if the browser is set to send it. Its not a very reliable thing to depend on, but a referer isnt sent from type ins or clicking back/forward buttons.