To answer your first question, the data is hosted on devices part of the distributed network.
For example, if you have a static webpage it may either be present on every node in the network (so anyone else accessing your webpage would only be making a local request to their copy of the data) OR the webpage would be split up into many pieces distributed amongst all the nodes, so say your webpage is split into n chunks you fetch each chunk from Node_1 ... Node_n and use some algorithm to stitch it back together.
These are obviously over simplifications, but you should take a look at how Gnunet, Freenet, and Zergnet(?) and how they approach the distributed web. Also, looking at p2p networks might give you an idea of how this works as well.
For example, if you have a static webpage it may either be present on every node in the network (so anyone else accessing your webpage would only be making a local request to their copy of the data) OR the webpage would be split up into many pieces distributed amongst all the nodes, so say your webpage is split into n chunks you fetch each chunk from Node_1 ... Node_n and use some algorithm to stitch it back together.
These are obviously over simplifications, but you should take a look at how Gnunet, Freenet, and Zergnet(?) and how they approach the distributed web. Also, looking at p2p networks might give you an idea of how this works as well.