What is a Web Host?
A web host is a company that provides a web hosting service, which is necessary in order for you to have a website that is online on the web.
More specifically, in order to have a website, you need a computer connected to the Internet running a program that is processes data sent to port 80 (HTTP) and port 443 (HTTPS). The name of such program is a "web server," e.g. Apache and NGinx are web servers. We also call the computer itself a web server if it's running a web server program. If the program isn't running, or the computer is turned off, the web server would be offline, so if it was serving a website, the website would become inaccessible.
We also normally need a domain name, such as example.com
, which we acquire from a registrar and must configure it to point to the IP address of our web server or to a fully qualified domain name (e.g. example.example-web-host.net
). Residential IP addresses often change, meaning if you connect to the Internet one day, and connect tomorrow, your IP will be different, which means if we resolve the domain name one day to an IP address, the next day it won't be the IP address of the web server anymore. This means that we need a static IP address to make our web servers operate without downtime.
All of these things are generally provided by a web host. The web host maintains the hardware (the computer), the software updated (e.g. Apache), and the connectivity. Some of them also provide registrar services, which means you can purchase a domain name directly from them. All you need to do is upload your website's files to your web host and it will be online.
Different web hosts provide different services. The minimum provide is static website hosting, which means they will serve the files you upload as-is, e.g. Neocities and Netlify provide free static website hosting. To have a proper website with these, you'll need some sort of static website generator, and these generally require technical knowledge to use. Some hosts provide general PHP hosting. Some provide only hosting for specific software made with PHP, e.g. WordPress hosting.
Large websites don't have web hosts. You can progress from shared web hosting (variable downtime) to dedicated web hosting (committed resources), then to a VPS (rented operating system), then rented hardware, and then finally to owning and managing your own hardware yourself (e.g. you have your own server rack, or data center). Each of these degrees require more technical knowledge and more resources. Not everyone can afford to maintain their own hardware, so in most cases, even larger websites just rent a VPS where they can do anything with the software, and leave handling the hardware to someone else.
Nowadays we also have "cloud" services which are a bit different from VPS's. Many "cloud" services make it easy to deploy web applications to scale, but many of those applications never scale to a point where the added complexity of the cloud infrastructure is worth it. For instance, in order to "scale," the application code must be immutable so it can be replicated, and the mutable parts must be isolated in a separate container (e.g. a database, redis, or S3 container on AWS). There is nothing inherently wrong with this. However, in a VPS, you can just save data to a file on the same server and that's it. Something so simple isn't possible in cloud solutions because it's not "scalable" when you have dozens of instances operating in parallel. This had led many unexperienced developers to rely on overly complex systems for simple tasks, which in turn becomes AWS bills of thousands and thousands of dollars when you could just pay $5 a month in shared hosting on NearlyFreeSpeech to do pretty much the same thing.
Leave a Reply