Методы pushState() и replaceState() для добавления и изменения записей в истории в сочетании с событием onpopstate
pushState() позволяет изменить referrer, который используется в HTTP-заголовке для XMLHttpRequest объектов, созданных после изменения состояния. Значением referrer будет URL документа, окно которого является this на момент создания XMLHttpRequest объекта.