The practice of using a simple memorable abstraction of a host's numerical address on a computer network dates back to the ARPANET era, before the advent of today's commercial Internet. In the early network, each computer on the network retrieved the hosts file (host.txt) from a computer at SRI (now SRI International), which mapped computer host names to numerical addresses. The rapid growth of the network made it impossible to maintain a centrally organized hostname registry and in 1983 the Domain Name System was introduced on the ARPANET and published by the Internet Engineering Task Force as RFC 882 and RFC 883.
Choosing is simple: select hosting that will support the script, platform, or CMS you want to use. And if you aren't sure, go for Linux hosting. For example, WordPress will run on Linux and Windows, but hosts generally recommend that you run it on Linux. However, if you want to use a Windows-specific technology like ASP.NET, you'll need a Windows host.
A complex site calls for a more comprehensive package that provides database support and application development platforms (e.g. ASP.NET, ColdFusion, Java EE, Perl/Plack, PHP or Ruby on Rails). These facilities allow customers to write or install scripts for applications like forums and content management. Also, Secure Sockets Layer (SSL) is typically used for websites that wish to keep the data transmitted more secure.
Many services offer a low "starting price," but require you to prepay for two or three years of service to get that price. After the promotional period, the renewal price for some services can be two, three, or even four times the initial promotional pricing. While the initial deal might be incredible, the cost of transferring your site (or paying the added fee) in a couple of years may be something to consider.