A stateful server and a stateless server have some key differences. A stateful server remembers client data (state) from one request to the next. A stateless server keeps no state information.
In Figure 12, user A’s session data and profile image are stored in Server 1. To authenticate User A, HTTP requests must be routed to Server 1. If a request is sent to other servers like Server 2, authentication would fail because Server 2 does not contain User A’s session data. Similarly, all HTTP requests from User B must be routed to Server 2; all requests from User C must be sent to Server 3.
The issue is that every request from the same client must be routed to the same server. This can be done with sticky sessions in most load balancers [10]; however, this adds overhead. Adding or removing servers is much more difficult with this approach. It is also challenging to handle server failures.