Sometimes, the requirements for a web application include a list of users that are currently logged-in. It would seem, at first glance, to be pretty trivial, but because few of us explicitly log out of web applications, the reality can get complicated. Even the best solution is a trade-off. Dino explains the issues and alternatives.
Fingerprinting is one of many methods that software developers use to identify and recognize returning users. The benefits of these systems are obvious: If you delete an app and reinstall it, you can presumably continue right where you left off, with your preferences, and sometimes even your data, held over from the last use.