You can host your website for free in many company and as @zainabrawat said, there's a very little disk space, bandwidth, etc. You have also a subdomain (it means that your website url will look like that: example.subdomain.com) from the company which host your server. To get a domain name, then you'll have to buy a domain (example.com) but some can be very cheap like goDaddy's. Here's a list about some of them:
Anyways, you can search on the internet, there's many of them. You can also choose to host with your own personal server (this means it's completely free). However, you will have to do some setups with your machine and you can start running your own website. Of course, your server wouldn't be as efficient as the ones provided by services because they won't be running 24 hours/7 days.
Choose whichever service you prefer but I highly recommend hosting on cheap web host such as 1&1.
Hope you're having a great day!