In this type of hosting, a single web server host many sites. All the sites share the CPU, memory harddrive etc of the same web server. For each websites hosted, a separate folder is assigned. All the websites even share the same IP address also (separate IP may be available for a fee). When a shared web server receives a web page request, It look the web site address(domain name part) and serves files from the folder alloted for that domain. (Is there a way to find all the websites hosted in a shared web server ? See Reverse IP )
In this type of hosting a single webserver hosts only one website. In managed dedicated hosting web hosting provider provides technical assistance in managing the server, like installing server OS etc. In colocation hosting, web hosting provider only provides the datacenter and infrastructure and the webserver has to be provided by customer.
This type of hosting is a middle way between Shared hosting and dedicated hosting. Like shared hosting, in VPS also a server host multiple sites but the minimum resources(like processor power, memory etc) allotted for each website is fixed between them. So no matter how high the load on one website, unlike sharehosting, no other website is effected.