Colocating the server gives you the greatest flexibility. You get to choose the hardware configuration of the server and the software that goes on it. The hosting company maintains the connection to the Internet and deals with environmental details such as uninterruptible power supplies (UPSs), fire controls, and air conditioning. On the other hand, you're responsible for that server's upkeep.