Take a look at imageur stack

A new website from scratch up:
there are some good references online:
    How to Make / Create a Website: The Beginner's A-Z Guide
    How to Register Your Own Domain Name
    W3School: Webhosting Tutorial

1. Purchase the name of your website (called the "domain name") at a good name server such as namecheap.com or godaddy.com . This should be around $10 for generic names.
The only option you might would be Whois safety to avoid the information of the owner of this newly purchased name to be displayed online.

2. Get a webhost which is a place to store your actual website content. like 000webhost.com which is a good starting point if you are merely testing these stuff and don't want to pay for now, you can easily change it later on at your will. this will be for free. There are other paid web hosts you can find a comparison of those at places like here or here.

3. Get the Domain Name Server (DNS) name of your webhost and specify it in the proper option setting of your nameserver.
A domain name server (DNS) would be something like ns01.000webhost.com or ns01.000webhost.com

Wait one day until this setting has been declared all over the internet.

4. upload the content of your website to your webhost.

You are all set! Happy new website!