A domain name (also known as a URL) is the address that people will enter into the web browser's address bar to navigate to your website. Without it, your "address" will be a series of numbers. To purchase a domain name, you must go through one of many domain registrars to buy a name that is logical for your website based on your name/company name, product, or service.
Though securing a domain name is referred to as a purchase, you will, in fact, have to pay for it on a yearly basis. Often, this can be an annual feel, and other times it can be a bulk payment for several years. This payment is essentially a fee to the registrar to ensure that your domain name is correctly registered and functioning.
The domain name is a separate charge from a website build and hosting because of the fact that it is for a separate service. I could incorporate the fee for the domain name into the fees I charge my web clients, but that would effectively put the responsibility for payment (for which I must rely on clients to pay) on me. It is in everyone's best interest if my clients own their own domain names.
As mentioned, there are a variety of registrars available, but two that I tend to prefer are Google Domains and GoDaddy.
Hosting fees are the fees you pay for the server and services to ensure your website is residing on a computer that safely and correctly delivers it to individuals who are out there entering your domain name into their browsers (or looking for you through a search engine).
There are many types of hosting and many hosting providers. Some are really cheap in the beginning and then raise their prices after the honeymoon period is over. And some are consistently reasonable or consistently expensive. There are a variety of factors to consider when choosing a host, and many impact how your site performs, remains secure, and functions as it is built to function.
The hosting fee is one that I pay every year, so it is something I must charge my web clients. Any markup is for the hours I allot for assistance and for maintenance services I perform on a regular basis.
This is a scam. These organizations typically send panic-inspiring letters to domain name owners ensuring that their domains will be lost if the owners do not send payment immediately. Alternatively, they may offer a period of free domain registration. In reality, their goal is to convince domain name owners to transfer ownership to them so that they can practice extortion by requiring exorbitant payments later.
If you ever have questions about correspondence regarding your hosting or domain name and are unsure if it is real, please contact me.