Basically, a database snapshot allows you to create a static, read-only copy of your database for other purposes, such as reporting, auditing, or recovering data.
How does it work?
A database snapshot creates a database shell for your existing database, and then whenever the data page is modified, the change is also written to the sparse file (sparse files). When people get the data, the part of the data that does not change is obtained from the original database, and the changed part is obtained from the sparse file.
In order to express this meaning clearly, please look at the picture below. As you can see from the picture below, 90% of the data is not modified, so when the query occurs, 90% of the data is obtained from the original database. The remaining 10% of the change data is obtained from sparse files.
Source:sql Server Books Online