Hosts: Explained
So, once you have your name, you will need to find some place to put your site.
Their are free 
  hosts, such as:
  geocities, but you are very limited 
  to what you can do with them, and they stamp their logo on your site in addition 
  to advertisements. Limits: in disk space, access to multiple 
  programming languages, databases, SSL servers, anon FTP, regular backup, guaranteed 
  uptime, access to server configuration files, not as stable, and lack of technical 
  support.  In short, if you expect to spend more than couple hours making 
  your web site, go with a paid service. 
Basically, you 
  find a company to pay a monthly or yearly fee to store your site for you on 
  a machine that serves your page to visitors. 
  Web hosting is required in order for websites to be put on the Internet. A computer 
  that specializes in hosting stores the website so it can be accessed by any 
  internet user during any time of the day. 
You can actually set up your own server at home, which could save you money, but you need a reliable machine that will be dedicated to just that task and your electric bill may rise a bit. And if you do it over cable or DSL it won't be as fast as a T1 line.
Most hosts for 
  the average person cost around $4-$8 a month. If you are setting something up 
  for a company you may need more than just basic service and may need to upgrade 
  eventually to accomodate such things as:
  
  space available: 
  
  often in Megabytes. This relates to how much stuff you can put up on the server
  
   hit 
  limit per month: 
  unusual, but some places still charge by hit
  
  Transfer limit: 
  This relates to how much your visitors can download a month---like pictures, 
  HTML files, quicktimes, anything on your site that they need to see it. You 
  will need to pay extra if you go over your maximum transfer amount
  
  email: 
  email services
  
  more advanced services:
  able to handle shopping carts, databasing, etc.
  
  additional domain names:
  ability to have more than one domain name point to things on your server.
  
   dedicated 
  servers: 
  A dedicated server is a single computer in a network reserved for fully serving 
  the needs of a single customer. Usually a host will put your site on a machine 
  with other sites and you have no control over the machine. With dedicated servers, 
  you get faster access to data and greater flexibility in formatting a machine 
  for software, scalability and site analysis. With a dedicated server, a user 
  is able to customize the server to meet their exact needs and is able to host 
  a large number of virtual domains. A dedicated server is typically a renter 
  service in which the user rents the server, software and an Internet connection 
  from the internet hosting provider. You can also hire a host to manage it. These 
  are costly: around $200-$600 a month. 
ecommerce 
  packages: 
  Some come complete with credit card transaction stuff, etc. Many places offer 
  these: around $50-$300 per month.
   
Hosts are hard to pick. You want a place that will respond to emails if you have problems within a reasonable amount of time, and preferrably a place wher you can reach a technology department by phone for help.
You also don't want a host that has a lot of problems with your page not always being available: called uptime. Uptime is the percentage of time that a web site is working. For example, if some host has an uptime average of 99%, this means that your site will be down for a total about 1 hour each month. Speed of a page loading is also an issue.
Questions to Ask Yourself when Choosing:
1. How much space do I need: for most people 50 megabytes (MB) if fine.
2. How much data transfer---traffic---do I expect: for most people 2-4 gigabytes (GB)is fine.
3. Do I need to have the support of languages for dynamically creating pages and transferring data---shopping carts, etc. Programs such as Perl, PHP (most servers support) or ASP (Active Server Pages), VBScript (Visual Basic), ColdFusion, JSP, Tcl, Python, server JavaScript, Miva Empressa, or compiled C/C++.
3. Will I need to make databases to store information (Most NT-based plans will offer Microsoft Access or Microsoft SQL Server, and most Unix-based plans will offer mSQL, MySQL, or PostgreSQL).
4. Do you want any extra features such as:
  
  SSL servers for secure over-the-Web transactions
  
  shell (telnet or SSH) access to your account
  
  access to raw logs and stats for figuring out who 
  the visitors to your site are.
  
  streaming media support for letting your users listen 
  to audio or watch video without having to fully download it
  
  email accounts so your users can contact you@yourserver.com, 
  mailing lists for creating an email community around your site
  
  whether the host uses a static IP: the IP address 
  does not change. More secure in terms of sharing your server.
  
  sub-domains for creating sub-sections to your site 
  without having to use directories in URLs
  
  control panel for graphical access to your account 
  settings
  
  anonymous FTP to allow users to download files through 
  FTP 
Will I be able to use Flash, Javascript, or Java Applets?
Yes. You don't need to pay anything extra to use these. These technologies have nothing to do with web hosts, they depend on Browsers and Browser support. Which are free.
Advanced Questions:
Should I use a Unix (Linux, SunOS, BSD, etc.) or Windows NT (Windows 2000) based server?
  Which operating system you decide to use should depend on what features you 
  need.  For example, if you are already using IIS, ASP, VBScript, Windows 
  Media, Microsoft Access, Microsoft SQL Server, or Visual InterDev, and you don't 
  have the time to learn Unix-based solutions, you'll have to choose a Windows 
  NT or Windows 2000-based host.  Just because your desktop is Windows-based 
  doesn't mean you should use a Windows host.  You may notice that Linux-based 
  operating systems and Apache Web servers are most common among web hosting companies.  
  This due to Apache's many shared-hosting features, a good track record of stability 
  and performance and because Linux and Apache are free.  
The Process Broken Down:
  
  1. You find the best web hosting plan that will fit your needs.
  
  2. You sign up with that web host and pay for it.
  
  3. You get a confirmation email with domain name servers (IP numbers for your 
  site) and other data that you may need, such as a temporary address (where you 
  can see your site), and web address of the hosts control panel to later adjust 
  your site or see how it is doing. 
  
  4. You login to the account you created when you registered your domain name 
  and you change your domain's name servers to those that you received in the 
  email.
  
  5. You upload all the HTML, graphics, and programming files that were created 
  when you designed your site from your hard drive to your hosting account.  
  
  
  6. After that, you wait for your name servers changes to take effect (usually 
  48hours), then you will be able to access your new web site at your domain name.  
  Before that, you can usually see your site at the temporary address they give 
  you.