There are several different types of web hosting available for people to use. There is free hosting for those not willing to spend any money and paid hosting for those who expect a degree of professionalism to show in their websites. Most webmasters use shared hosting for their websites which means for a low fee they can get a hosting account with more capacity than they will ever use. This is economical because the hosting firm can put a huge number of accounts on the same server (the specialized computer holding the websites) which then serves all the customers with a huge pool of bandwidth and other resources. There are other types as well, for example some people have complete control over their webserver. If a website has many visitors and is very graphical (lots of large pictures or videos) they will need to have a lot of bandwidth to contend with. These websites are not always suited to a shared hosting account because bulk bandwidth is expensive. There are also people who use hosting for very basic needs such as sharing pictures or videos with friends. These users can find "hosting" for free, although I personally think of this as a separate specialized service rather than hosting as they are greatly constrained by a simple and inflexible but user friendly interface.
Free web hosting typically means that there are very large advertisements on the website being hosted. These ads are usually large, maybe even including annoying popup ads (or popunders) and there is nothing the account holder can do about them unless they are willing to upgrade to a paid hosting account (no ads). The free hosting company is usually quite willing to take the money to remove the ads, but is not a good choice as they are unlikely to provide as much as some of the more mainstream hosting companies do. These are ok for an armature unwilling to spend about $10 a month on normal hosting who has no serious or financial goals for the website. Depending on how many people visit the website, it is quite common for other website owners to make some money with advertising on their website which is much more difficult with free hosting. The free hosting companies usually make a great deal of money on advertising and so it may be a violation of there terms of service (contract) to put up competing ads on a website on their server. I recommend against free hosting unless you truly don’t care about having your website look good and you don’t hope to make any money.
Shared hosting is usually provided using multiple web servers in a data center (a specialized building built just for holding a huge volume of computers). These data centers have extremely fast and large industrial sized internet connections. This is true for free hosts as well. This specialization and large scale means that there are a multitude of safeguards taken to ensure that their customer’s websites are always available. So room sized generators, building UPS (battery) backups, multiple internet connections, and backups of the data are standard. While these resources are shared with all of their customers (as with free hosting) the resources are available in such bulk that sometimes even hundreds of thousands of websites can be hosted there. The cost to the individual customer is usually under $10 per month for as many websites as they want. Also because these providers are in the business to get paid for this and need to compete they usually provide abundant "bonuses" not found with the free hosting. These including auto-installing scripts, statistics, e-mail services, blog software, and other things. These services are the best for the majority of people and provide the best quality of service. These do have limits on how much bandwidth (file downloads measured in gigabytes) and disk constraints; both are usually in the form of small extra fees. These limits are in place to protect their other customers from bandwidth hogs should usage ever get unreasonable which the average customer does not ever get billed for.
A dedicated server is a server that is entirely dedicated to one person’s account. The advantage is that one does not have to share server’s resources with other users therefore reducing the concern of infringing on the capacity that others might need to use. These have substantially larger resource limits (one server only has so much capacity). The one resource limit that most of these costumers are concerned with is bandwidth because it is still shared. However the restriction is still significantly higher (very few professional webmasters want this much) than the bandwidth restriction of most shared hosting. Bandwidth is also billed differently. Usually the hosting company checks the bandwidth usage at regular intervals (perhaps every minute). The hosting company then calculates what the 95th percentile of bandwidth usage is (meaning you don’t pay for the top 5% peak usage). It is worth noting that this bandwidth calculation varies from provider to provider and should be read carefully.
A dedicated server can come with or without normal routine server maintenance being provided by the provider. There is some skill and expertise required for this. The provider usually can do this for servers in bulk and so it is usually not expensive. The websites that use this are almost always resource intensive (otherwise they would be unlikely to demand the extra expense). A dedicated server can also allow the customer to have access not practical in a shared server. For example complete applications could be installed rather than just web scripts; the customer can do almost anything they want to it. Likely customers of dedicated servers are sites with a large number of large images (for example porn sites and wallpaper sites), sites with video files, or streaming audio on them. There are very few sites that demand this level of capacity.
VPS Virtual Private Server
This is similar to the dedicated server above. However the dedicated hardware is really just simulated in software so one server serves several customers saving on the space and hardware costs. You still get the likeness of a dedicated server with all of the administration, customization, and access available in the normal dedicated server. Unfortunately there is some overhead in having a virtual private server (each virtual server uses much more disk and memory on the server than on a shared server so there is a limit to how many of these can exist on one server. Due to this overhead you should expect to see a higher resource limit than with most shared servers. Despite this I think it is silly to pay for a virtual private server unless you actually need to customize the server in a way the other 10,000+ customers don’t have a reason to. I do have to concede though that if you need more bandwidth than you have in your hosting account (on a long term basis) this would be competitive to a dedicated server.
There are many types of hosting accounts ranging from the most basic ad supported for the hobbyist, to the dedicated server for those websites that eat more bandwidth that I can imagine. The shored hosting is inexpensive and usually fits almost anybody who wants to put any effort into their website.