Choosing the right web hosting package can sometimes be a bit daunting; did you get enough bandwidth? disk space? etc. And are you paying over-the-odds for what you actually need? What is SSI and CGI anyway? Do you need a database and what about keeping your website secure?
If you're starting to build websites, getting it hosted for others to see for the first time is sometimes a big hurdle. Viewing an HTML file in a browser is easy, just drag-and-drop, or open it the old fashioned way, but to get it truely online is a whole other story.
A lot of people don't realise that they can host a website quite happily themselves at home, for free. It's not impossible to have your website available on the Internet too, although make sure you're comfortable with opening up your home firewall before taking things this far! It's possible, just not usually ideal.
Hosting at home in a true hosting environment is also good for developing and building websites, there's no delay in FTP'ing your files to a remote server, and you don't even need Internet access.
As I mentioned, you can review a web page in your browser easily-enough by just opening it, but this isn't really hosting a website. To do this, you'll need a peice of software called a Web Server. The Web Server is responsible for listening for requests from a browser for a particular web page, and sending that web page back to the browser to be displayed.
Web Server Options
There's a few options when it comes to running your own webserver, I'd personally recommend any of the first 3 since they're free and open-source, meaning they've had lots of eyes look over them to make sure they're secure and efficient.
- Apache - Powerful and extremely common, used by around 60% of the Internet.
- Lighttpd - A lighter option than Apache.
- nginx - An extremely light-weight option with a 12% market-share.
- Microsoft Internet Information Server (IIS) - proprietary webserver available for Windows PCs, 15% market-share
Configuring a web server is generally straight forward; tell it what directory to serve files from, and possibly change which port the web server should listen on for incoming requests. By default all web servers listen on port 80 (and all web browsers send requests to port 80), if you're trying to run a web server on a machine without substantial user privileges, you may need to choose a port higher than 1024 (1-1024 are usually reserved).
Once you're all set just head on over to http://127.0.0.1 or http://localhost to see your webpages as-if they were on the Internet. 127.0.0.1 is known as the loopback IP address for every machine to talk to itself, and localhost is probably configured on your machine to resolve to 127.0.0.1, so both approaches should work.
If you do use a non-standard port, 8080 for example, you'll need to add this to the URL you navigate to in your browser, ie, http://localhost:8080/index.html.
One huge flaw with using a home server for an actual website is that it's not generally available to everyone else on the Internet, and even if it was, you'd need to keep that machine on 24/7, and never reboot it. In addition, your ISP may impose blocks or speed restrictions on home servers.
One option is to buy a Shared Hosting package from a hosting provider. With this you'll get access to a server and given your very own folder to put your HTML (JS, CSS, etc) files in, access is usually done via FTP (File Transfer Protocol).
It's usually down to the user to set up their DNS to point their domain to the IP address of the server, unless you buy the domain and hosting through the same company, in which case there'll probably be a simple button to press to configure it all for you.
These are the cheapest web hosting packages you'll find online, sometimes even free! But be warned, you get what you pay for.
The name Shared Hosting comes from the fact that your website is sharing its resources with other websites on the same physical machine/server. If one of those other websites becomes really busy, or even attacked, and brings down the server, all websites hosted there will also be taken offline.
Support is usually not great, if you have technical problems, you will have a support email address to contact, and maybe a premium-rate phone number to call. It can also take several days before any reported issues are looked at. If you want a Service Level Agreement, or SLA with the hosting provider, to state how quickly an issue will be looked at and resolved, you'll probably need to look at spending a bit more.
The names given to these types of packages by various suppliers can be a bit mis-leading, if you see hosting packages called Starter, Business, or Unlimited, they could all be shared hosting packages, the price will dictate otherwise.
Shared Web Hosting Key Features
- Cheap, even free if you hunt around, or expect to pay up to £10/month for an Unlimited package.
- Fast and usually free setup process.
- A little daunting if you don't understand FTP or SCP.
- No choice of web-server, so be careful when building a website that may rely on a particular web-server to run properly.
- Limited support, usually by email, and no SLA.
Shared web hosting is a good choice for hobby websites, and some simple brochure websites advertising your business, but if you need the peace-of-mind that your website is online all the time, shared hosting may not be the best choice.
If you're not tech-savy and/or want to ensure your website stays online 24/7, then Managed Hosting may be the option you're looking for.
With this type of package, you'll have a direct contact number for a technician to deal with any issues with your website, and also some strict SLAs to ensure your issue is dealt with in a timely-manner. This may only mean that they'll keep you updated every hour or so, and won't necessarily have the issue fixed by a set time.
Managed Hosting is not cheap, since you've got someone personally responsible for your website being online 24/7, you can also expect to have continuous monitoring of your website, and most issues resolved before you even know about them.
This sort of pro-active web hosting is employed by online shops and larger brands, that depend on a stable service at all times.
Prices usually start at around £500/year for a set amount of on-call usage. This really is the lowest end of the spectrum, larger sites requiring many servers to be maintained can easily reach into the tens of thousands of pounds.
Virtual Private Server
The Virtual Private Server (VPS) is really a mix between a home server and Shared Hosting. It acts and feels like your very own server on the Internet, you can customise it how you please, yet it is still sharing resources with other VPSs on the same physical hardware.
The hardware used is usually a cluster of machines with many GBs of RAM and Terrabytes of storage.
For the real tech-savy amongst you, you can always hire out your very own Dedicated Server, to control and customise as much as you like. Just like a home server, but without the limitations on bandwidth or having to leave your home PC online 24/7.
So how do you know how much bandwidth or disk space you actually need? Well I can give a couple of examples to try and put things into perspective.
Unless you're planning on re-creating Flickr or YouTube, don't pay too much attention to unlimited disk-space, even just 100MB should suffice for most websites.
Bandwidth is the one to watch, but because it's so cheap these days, most providers will give unlimited bandwidth anyway.