what is difference between uniform extents and mixed extents in Database file storage structure?
There is no difference between what is stored on a page, between uniform and shared extents. It is as simple as that the first 8 pages for an allocation (a table, index, ...) comes from shared extents.

Back in the mid-90s when the "new" architecture was done, MS decided that they didn't want to waste a whopping 64 kB (8 pages) for each allocation. Back then we didn't have partitioning, and if we also ignore LOB data, we can equate allocation to "each index and also the actual data". I.e., imagine a table with 4 indexes (say it is a heap, but if that doesn't mean anything to you, just ignore the nuances). With uniform extents, each of these 5 allocations (one for the data and one each for the index) would use as a minimum 64 kB each. I.e., at least 5 * 64 kB = 320 kB, even if you only have one row.

So, they decided that the first 8 pages comes from mixed extents. Now, each of these 5 allocations only use 1 page (instead of 1 extent), i.e., 40 kB instead of 320 kB for this example. 

The years fly by, and as of SQL Server 2016, MS decided that saving these measly kB doesn't buy us that much, so nowadays SQL Server allocate uniform extents from the very start. I.e., no more "first 8 pages comes from shared extents". You can revert to the old behavior using a database option if you want.

Shared extents still exists, though. For instance the IAM pages still comes from shared extents.