The world wide web has been around since the mid-90’s yet we still regularly get asked “what is hosting anyway?”. As someone who’s been building websites since the start I forget that the internet, the world wide web, domain names, email etc can all be very foreign to people. It must seem very intangible if you’re not used to working with computers and servers.
So here is my quick overview on how website hosting works and what it does.
What is a website?
Firstly we need to discuss what a website actually is. At it’s very basic level, a website is the representation of programming code called HTML (hyper text markup language). HTML is the language that developers use to describe how the website looks and works when it’s opened in your browser and was invented by Tim Berners-Lee in the late 80’s, early 90’s at CERN. Since those early days HTML has developed and incorporated CSS (cascading style sheets) but i’m not going to go into that here – let’s just say that it’s a very powerful language.
When you visit the home page of a website, your browser will open a “page” and display the content that the web developer has designed but what is a “page”?
Just like when you open a Word document on your P.C., a website page is a document and the “home page” is the first page in a series of pages that make up your website. If you were to look at the code of a website page you would see something like the following.
<title>This is a title</title>
That’s a very basic bit of code that will show the text “Hello world!” when opened using your browser. Just like with Word, your browser is built to read that raw code and display it in a way that is easier to read and use.
The home page of the website may include a clickable link to other pages that make up your website. Each of these pages is a separate file, just like opening a different Word document although they’re usually designed to look similar to the first.
A website will therefore be made up of a home page (often called index.htm) and 4 or 5 other pages (usually something like aboutus.htm, services.htm, contactus.htm and so on.
What do servers do?
Pages on their own are no use without a server. If you had your website pages on your own P.C. then you would be able to view them privately on that computer but no-one else would be able to see them. This is where a server comes in handy.
To make your website visible to the world (wide web), you need to store them on a server that everyone can access. You could (in theory) allow people to view them from your P.C., and indeed the early servers weren’t much better than your home computer linked to a network of other computers. But having a website located on your computer isn’t very efficient or reliable. You want your website online 24/7, 365 days a year so relying on your P.C. isn’t going to suffice.
Server are designed to “serve” websites around the clock and are located in bomb-proof data centers where they’re managed by serious techies. ?They’re basically big hard drives where you can save your website pages in a folder in just the same way that you would store a set of Word documents in a folder on your P.C. Each website having it’s own folder.
I.P Addresses and Domain Names
With the pages of your website saved into a folder on a server we now need a way for other computers to know the location of those files. Without knowing the location it’s impossible for other people to see your website.
Each server will have an I.P address (Internet Protocol). This is a bit like your postcode for your house – it’s a pre-determined code that identifies the server so anyone can find it if they know the address. If you know the I.P address of a server you can enter that into your browser and view the website.
I.P. address format has changed recently but you may be familiar with a set of numbers such as 123.456.789.321 – This is an I.P. address.
Just like with postcodes, you don’t want to have two or more servers with the same I.P. address so they’re designated by a controlling authority – the Internet Assigned Numbers Authority (IANA). Data centres will request I.P. addresses in bulk and then apply them to each server as required. These I.P. addresses are then made public so that other servers around the world know of them and how to find them when required.
How that all works in practice (to be totally honest) is where my knowledge is a bit thin. It’s way to techie even for me. Let’s just assume that it’s easy!
Your website is now sitting in a folder on a server that has a public address so anyone can find it. However, your website might be just one of thousands on that server, so how does the server know which site to display when someone visits that I.P. address? It would be like going to a postcode location only to find it’s a street of hundreds of houses – without the house number you still won’t get to the location you want.
Also, a string of numbers isn’t very user friendly – who’s going to easily remember 192.345.000.001?
Domain names solve the problem in a really neat way. Not only do they allow us to use English to describe the location, they are used by the server to know the folder where the files for your website are stored.
When you type in a domain name into your browser (e.g. www.www.lf-bwcl.com), that domain name is translated into an I.P. address of the server where that website is located. The server then looks at the domain name and knows that the files to display to people viewing the domain are in a certain folder so it displays them in your browser.
Domain names and I.P. addresses are stored in multiple locations on other servers around the world. When you type in a website domain name into your browser your computer will communicate with a server local to you (usually provided by your internet service provider). That server then checks with a list of known domain names to find the right I.P. address and you move on to the next server before eventually arriving at the server where the website is actually stored. It all happens in the blink of an eye (usually).
That’s basically it – hopefully i’ve explained it in a way that is easy to understand if you’re new to hosting.