What's the difference between a domain name and web hosting?
The simplest way to think of it is like this: Domain names are a sort of “contact list” or “phone book” for the Internet. If you think of it that way, then the website is like the person in that contact list or phone book.
When you type a domain name (such as freshroastedhosting.com) into your web browser, your computer quickly converts that domain name into a series of numbers (such as 220.127.116.11 or 2001:0db8:85a3:0042:1000:8a2e:0370:7334). It does this with the help of a vast network of servers all over the world. These servers are called DNS servers, or Domain Name System servers. They're also frequently called “nameservers”. This system is so fast and so invisible that most people haven't even heard of it. But if you own a website, you'll need to at least know it exists.
A good analogy is to think of going out to your favorite local coffee house. A domain name is like the website's address (after all, you don't think “I want to go to 123 Main Street Suite 101”, you think “I want to go to Starbucks”). Web hosting, then, is like the barista at the coffee house. You tell the barista what you want, he or she prepares it quickly and accurately, and you're on your way.