Rozwiązań jest kilka, zależy co rozumiesz przez "kolejne strony". Ja bym to zrobił jako zmiany tylko client-side, jeśli nie masz tutaj typowego SPA Angular itp. to możesz sam żyć History API i zrobić sobie routing, są nawet gotowe libki do tego. Wtedy w jednym obiekcie w JS mógłbyś mieć cały stan.
Jeśli są to pełne przeładowania strony to możesz użyć jakiegoś client-side storage, np. localStorage czy IndexedDB i tam sobie stopniowo uzupełniać wszystko, a na koniec puścić w requeście komplet danych.
Możesz też puszczać requesty cząstkowe i magazynować na w back-endzie np. w bazie danych, tutaj jest wiele możliwości na ten cały problem, wszystko zależy od architektury aplikacji i od tego co dokładnie z tymi danymi robisz, czy chcesz je zabezpieczać per user np. gdy ktoś skończy na PC na stronie 3 i chciałby wrócić do tego na mobile... czy ma wtedy ruszać od zera...?