To have a website at all, it has to be "hosted" on a computer ("server") somewhere. You could host a website on a computer at home, but I don't recommend that for many reasons. There are free web hosting sites all over the internet that will give you a bit of space on their computers for your web site. I don't recommend these either. You have very little space, you can't do server-side programming, and I think they nearly all put ads on your web pages now.
A good host does cost money and the more flexibility they give you the more it will cost. Some things to look for:
Once your site is receiving a lot of traffic, you can sign up for what is called co-location. This is where you buy a server, do anything you want to it and then take it to the web-hosting company where they will plug it in and make sure it has power, a cool environment, and a big internet connection. This is pretty expensive, however.
Don't forget- I provide hosting too!