Referer и user-agent являются заголовком запроса, а не заголовком ответа.
Это означает, что они отправляются браузером или вашим ajax-вызовом (значение которого можно изменить), и они принимаются до того, как вы получите HTTP-ответ.
Таким образом, в основном вы запрашиваете не заголовок HTTP, а настройку браузера.
Значение, которое вы получаете из document.referer и navigator.userAgent, может быть не фактическим заголовком, а настройкой браузера.