The cause is hidden. The effect is visible to all.
All real-world applications of any shape and form need to maintain their own state to serve users' requests. ASP.NET applications are no exception, but unlike other types of applications, they need special system-level tools to achieve the result. The reason for this peculiarity lies in the stateless nature of the underlying protocol that Web applications still rely upon. As long as HTTP remains the transportation protocol for the Web, all applications will run into the same problem—they need to figure out the most effective way to persist state information.
Application state is a sort of blank container each application and programmer can fill with ...