So many hosting companies now a days in the market providing this kind of hosting in which they offer no charges for any kind of hosting or disk space.
Most free hosting companies make money by
1) selling adds on your website.
2) from banner ads to pop-ups
So it proves to be a good revenue source also for users.
They make money through their adds but some of them make money through a hope that you may upgrade and pay for the advance features.
Another reason they can give it away free is that you are sharing a server with sometimes up to 100,000 other people. This overcrowding limits the amount of storage space and bandwidth transfer that a free host can provide. Most of the popular free hosting companies offer only enough space to have a small personal website. The good ones have paid upgrades available so you can graduate to paid web hosting when you are ready.
You have to manage your site yourself in your way. If the free web host allows anyone to signup and if they provide the features like PHP or CGI.You have to manage your site yourself in your way.You have to keep upgrading it and have to add catchy ingredients so that you could add more and more audience to your website.
Well as in every business there are threats involved,so there are threats of spammers,security loss,etc associated with free web hosting.You have to be very careful in dealing with these threats.