Jika Anda menyimpan status pada server yang diperlukan untuk memproses permintaan masuk dari klien, maka server tersebut stateful. Dengan kata lain, itu menyatakan bahwa ia menyimpan dan perlu mengakses untuk memproses permintaan dari klien. Jadi, hashmap Anda adalah state sehingga server Anda stateful.
Sekarang, ada beberapa aplikasi web nyata yang melakukan hal-hal kaya yang tidak stateful sama sekali. Lagi pula, jika Anda akan memiliki login pengguna dan kemudian memproses permintaan atas perintah klien yang login, maka agak menurut definisi, Anda menyimpan status pada server yang berkaitan dengan klien tertentu dan server stateful , meskipun hanya untuk info masuk.
Jadi, saya tidak akan terlalu terpaku pada status nol di server. Yang penting adalah seberapa banyak keadaan yang ada di server, seberapa mahal (dalam hal pemrosesan, penyimpanan, dll ...) untuk menyimpan dan mengakses keadaan ini dan dapatkah Anda masih menskalakan aplikasi secara horizontal dengan keadaan ini. Dan, di mana pun keadaan praktis tetap dalam klien, bukan pada server. Sebagai contoh sepele, misalkan Anda memiliki aplikasi klien yang memiliki tombol "halaman berikutnya". Anda dapat menerapkan "halaman berikutnya" dengan kondisi sisi klien dari sisi sisi server.
Jika Anda memiliki keadaan sisi server untuk halaman saat ini dari klien, Anda bisa mengirim perintah ke server yang ingin Anda lihat halaman "selanjutnya". Server akan melihat statusnya untuk klien itu, menambah halaman, lalu mengembalikan data untuk halaman berikutnya.
Atau, Anda dapat menyimpan halaman saat ini di klien. Ketika klien menginginkan halaman berikutnya, ia mengambil nomor halaman saat ini, menambahnya dengan satu dan membuat permintaan umum untuk nomor halaman tertentu yang ingin dilihat selanjutnya.
Manakah dari implementasi ini yang menurut Anda memiliki skala yang lebih baik? Manakah yang lebih sederhana untuk diterapkan ketika pengguna membuka tab kedua melihat halaman yang berbeda? Yang lebih sederhana untuk skala horizontal. Jawaban untuk semua itu adalah yang tidak menyimpan halaman saat ini di server, tetapi menyimpannya di klien dan hanya membuat permintaan umum untuk halaman N ke server. Menjaga agar sisi klien sisi membuatnya lebih mudah untuk skala secara individual dan horizontal dan mendukung banyak tampilan untuk klien yang sama.