When you have a dedicated server, it means you are renting one physical server from a hosting company. You can have full control (called "root" permissions in Linux) if you want it. Pricing: Dedicated servers are priced from $100 and up. But if you are considering a dedicated server, you should also consider the costs of hiring a sysadmin to take care of the box.
When you colocate, you rent rack space from a data center. You bring in your own server hardware and they provide power, cooling, physical security, and an internet uplink. This means you're responsible for your own server software, data storage, backup procedures, etc. If hardware fails, you're responsible for replacing it and getting the server back up and running. Unless you have the technical know-how in-house, colocation is probably not worth the investment in time, expertise, and money for most small businesses.
The ultimate hosting plan -- you do it all yourself! You buy the servers, install and configure the software, make sure there is sufficient cooling and power in your machine room, and double up everything for redundancy. Some of the things you'll have to take care of:
- data center space
- power (with backup)
- server hardware
- systems administrator
- data integrity and backup
- ... and the list goes on.
Free web hosting service: offered by different companies with limited services, sometimes supported by advertisements, and often limited when compared to paid hosting.