Last time, in Part 1 of this guide, we looked at assessing a potential host for your site using a checklist. Today, we get into the nitty gritty of the job: what factors should you include on your checklist? What are the aspects on which you want to evaluate each host. You might want to consider these.
Basic Hosting Features
If there’s one word in the world of hosting that misleads the naive surfer, it’s "unlimited". To put things into perspective, there is nothing a Web host can offer you that is unlimited. It may be unmetered, or unrestricted (limited only by the specifications of the server), but never unlimited.
Be wary of hosts that make heavy use of this word: it’s a marketing ploy that many people have fallen for, particularly when they haven’t done much background research. Typically, servers that offer unlimited bandwidth and disk space tend to be over-subscribed and the service they provide can be negatively affected as a result.
1. Disk Space
All hosting accounts offer a certain amount of disk space that you can use to store your files. Exactly what is and is not counted as disk space usage will vary from host to host, so make sure you check exactly which files you’ll need to allow for when deciding the disk quota you’ll need.
It would be a good idea to have some sort of estimates on the space you’ll need for various tasks. How much space will you need for storing your email, Web files, databases and log files? Breaking down your usage like this will make the task of work out how much space you should go for (once you know exactly what files are counted towards your disk quota) much simpler.
All plans will certainly include all your Web-accessible files when calculating disk usage. Some hosts will also choose to include email and/or logs in the quota, which can make estimating your disk space requirements more difficult. While you may have a good idea of the disk space needed for your web files, your email and log file needs probably change constantly.
Should a host include all types of file storage in the quota, check to see if you can switch off your logs or exclude particular information. If the option is available it may save you a lot of disk space, particularly if you have a busy site. However, if you want to use a statistics package, you will need to allow space for some logging to take place.
If you enable your logs then it is also worth remembering that you might not be able to delete a log file from the server until the server has stopped writing to it. Daily logs are fairly manageable if you remember to log in and download and delete them regularly. Problems with monthly logs can arise if you underestimate your log space needs, and then find you can’t delete the file until the end of the month. This could easily lead to an extra charge if you aren’t careful.
If your email settings and inboxes are included in your disk quota, it might be an idea to set a maximum size for each mailbox if possible. This will save you from storing too much mail on the server and inadvertently going over your limit.
2. Email Accounts
Email accounts are a common feature of hosting, particularly if you host a domain. Some hosts will give you control over your mail settings, putting restrictions on mail activities (for example, the number of accounts or maximum size of mail boxes) on the server side. Other hosts will do all the set up for you, even though setting up new mail accounts can be easier than you think with the right software support.
How you configure your email is a matter of personal preference, but there are essentially four main types of mail accounts; POP3, forwarding, aliases and autoresponders.
- POP3 accounts are the traditional "inboxes". You have storage space on a server for your mail, and you use an email program to log in and download your mail. Each login and password combination usually equates to one account. This works a bit like an office inbox, and the mail is left there until you do something with it. If the inbox is full then your mail can’t be stored, and will bounce.
- Forwarding mail accounts are useful if, for instance, you want to send your mail to an email filters service like SpamCop before you receive it. Rather than store it on your mail server, it will redirect all mail to another single email address which will deal with it appropriately. This kind of account is useful for redirecting your emails to a common POP3 box.
- Aliases are names that can be used to identify different types of email account, redirecting them to POP3 mailboxes on the server or other addresses, where they are processed again if necessary. What happens to the emails will depend on who they’re being sent to. A catch-all alias is often used to collect and deal with email sent to people or departments that are not recognised by your mail server.
- Autoresponders are not an email account in their own right, however they do have their own email address and simply reply to anyone that emails them for information. They are useful if you want to send out pre-prepared information to people who request it, as opposed to you having to reply to all the requests manually.
3. FTP Access
One other thing that is common amongst paid hosting accounts is FTP access. FTP programs allow you to upload files and to edit and delete your content on the server much more quickly than using a Web-based interface. If you are hosting on a *nix system, you’ll also be able to change your file permission settings using FTP.
One of the better features I’ve seen offered with hosting is the ability for you to create your own FTP accounts. This is great when you have someone helping out on the site, or if you want to share your Web space while keeping your users’ files separate from your own. How hosts go about this can vary.
Some hosts will let you act like a mini hosting company, where FTP accounts that you create take users to a special folder specifically for their files, which keeps them separate from your main files. Other hosts will allow you to create FTP accounts in which you can define exactly which folders the user has access to, and exactly what they can (and can’t) do with them.
While having the ability to create multiple FTP accounts may seem trivial if you don’t intend to host other sites on your Web space, it can be useful for allowing temporary or permanent access to anyone helping you with your site, without you ever needing to give out your own FTP account details. Now that is a feature worth having!
Unlimited Resources Hosting – seems too good to be true doesn’t it? Well it is!
Email Management Options – more about the various email accounts you can get with hosting.
4. Data Transfer
Calculating your data transfer needs, the associated bandwidth and the effects it will have on hosting your site can be anything but easy, but it’s one of those calculations that you will need to do if you want to avoid being stung with unexpected costs.
There are various problems associated with calculating your data transfer and bandwidth requirements. How do you account for cached pages and images? What size unit does the host use for their calculations, and how can your bandwidth limit affect the quality of your hosting?
Be Careful! Not all data transfer limits are created equal! Units of measurement can vary between hosts, and if they don’t make it clear, be sure to ask them how many bytes per kilobyte they used when drawing up their comparison tables.
Caching and its Effects on Data Transfer
Many ISPs use proxy servers to help speed up Internet access for their customers. The idea is that these servers keep a copy of your page on the proxy server (for a certain amount of time), and update their copy as you change your page. The effect of this is that, while your page may have only been downloaded from your server once, it may have been seen by a number of people.
If you have static pages that rarely change, then caching can help reduce your hosting bill. Clever use of meta tags can tell the browser not to bother reloading the page from the server if it is available on the user’s computer or a proxy server. Since these revisited pages do not have to be reloaded from your server, a single page request in your logs could equate to several-hundred page views for that page (particularly if you were paid a visit from a large proxy server used by some of the bigger ISPs).
Dynamic pages are not so well suited to caching, but if the dynamic elements of pages are not visitor- or time-sensitive, then caching can be used to some degree to keep that data transfer bill down. For example, a page using the date may only need to be built by the server once each day. In the case of building dynamic pages, caching can also be used to reduce the server load by storing results of database queries in the server cache.
5. Bandwidth and the Quality of Hosting
When you look for a suitable host, be sure to check out the amount of bandwidth that will be available to your site. Even a site that doesn’t require a great deal of data transfer per month could run slowly if you’re hosted on a shared server; particularly if you are on the same server as a more popular or bandwidth-intensive site.
The more sites hosted on a server, the more likely they are to compete with each other for available resources, including bandwidth. This is why you may notice a reduction in server response times during busy periods, or during a sudden peak in traffic at a busier site on a server that you share.
How much bandwidth is left unused to allow for sudden peaks in traffic at any time is known as redundant bandwidth. The more redundant bandwidth a particular server has, the more likely it is to cope well with sudden peaks in traffic, which can make all the difference between a pitiful and a successful advertising campaign.
If your site is consistently slow and busy (particularly at set times during the day), then it could certainly benefit from having more bandwidth. The chances are that your host doesn’t provide enough redundant bandwidth to deal with normal demand — they may need to upgrade their bandwidth capacity, or simply review their bandwidth management strategy.
Ideally, any host you consider should have connections to the backbone, with at least two service providers, and at least 25% redundancy in all its connections. The higher the number of connections, service providers, and percentage of redundancy, the better the system will cope when things get busy.
Bursting the Bandwidth Barrier
By purchasing a plan that allows for burstable bandwidth, you’ll help prevent your site slowing down during peak traffic periods. Burstable bandwidth means that you can use more bandwidth than your hosting plan would normally allow should you need to, which is extremely handy should the flow of traffic coming and going from your server suddenly peak. Note that the amount of additional bandwidth available will depend on the level of the redundant bandwidth in the backbone connections your site has access to.
Hosts that offer burstable bandwidth with your package will let you make use of some (or all) of the redundant bandwidth to help your site cope with the traffic. This should only be used as a short term solution — if you consistently utilize more bandwidth than your hosting package allows, you really ought to upgrade.
Serving Large Files and Multimedia
If you hadn’t guessed it already, bandwidth availability can have a significant impact on both the quantity and quality of site downloads, whether they’re large archives or multimedia presentations. As access to the server becomes more difficult to obtain, the number of packets lost increases. For small files, such as Web pages and images, this isn’t such a problem; packet loss is (statistically) less likely to occur on small files. On the other hand, larger files are more likely to lose data during transfer, as there are more opportunities for packets to become lost, and this, in turn, can adversely affect the quality of the download. Files can become corrupted, and streaming media grows more jittery as more data is lost.
If you intend to host downloads or multimedia files on your site, it’s worth shopping around for a host that offers plenty of bandwidth, data transfer, and a good level of redundancy in its connections to the backbone. Having a server that can support resume if it serves large files is useful, as it saves unnecessary data transfer.
Your bandwidth and data transfer costs will make up the bulk of your hosting bill. While burstable bandwidth may be a luxury you could afford to do without, it’s always a good idea to get as much bandwidth and redundancy as your budget will allow.
Bandwidth and Data Transfer Explained – the name of this page says it all!
6. File Support
You would expect all Web hosts to support the basic file types that are essential to the running of the most basic Website — after all, if a server doesn’t know how to deal with a HTML file and the images associated with it, then just how old is it? However, you cannot upload a file to a server and simply expect it to work first time. Not all servers know what to do with different files, and a server may even confuse some of the more common file types if it’s not set up correctly.
Problems may become apparent when you want to use any filetype other than your typical HTML, JPEG and GIFs. Even something as simple as a Cascading Style Sheet can cause problems if the extension associated with it (.css) is confused for the lesser common mime type of Corel Slide Show.
How your server deals with various extensions will depend on the software its running. On Windows systems, extensions are mapped to the application they are intended for. So a file with a .pl extension is opened with the Perl Interpreter, which then outputs the page according to the contents of the file. On a *nix system, the same .pl extension is not important: you’d have to explicitly give the path to Perl in the first line of the script for the server to be able to know what program it should use to run the file.
When a server doesn’t know how to deal with a file, it does one of two things:
- tries to open the file as plain text, or
- tries to download it.
These default behaviors are usually undesirable, particularly if you want the file to be sent "as is" so that your browser and its plug-ins can deal with it themselves. It also poses a possible security threat should anyone in the process of downloading a file (for example, one of your scripts) see the paths and (sometimes unencrypted) passwords stored in them.
It’s a good idea to test how your server deals with various file types before you go uploading anything that contains potentially sensitive content or source code. If the file types you use aren’t supported in the way that you’d like, it could simply be that the file extensions aren’t associated with the correct mime types. Depending on your host and server setup, you may be able to add your own mime types. This would even allow you to create your own file extensions and make people wonder just what sort of scripting language you use!
It must be stressed that not all hosts will offer you the opportunity to add your own mime types, so it’s a good idea to make sure that the server supports all the file types you plan to use.
If your host is running Apache, then you may be able to edit the Apache handlers and have files behave like something else entirely different. It is certainly possible to make an .html file parse server side includes by editing the handlers in this way.
However, unless you need to parse all your files for includes, it’s probably not worth it, as this will cause all .html files to be parsed before they’re sent to the browser, which will put unnecessary strain on the server.
7. Scripting Magic
While it is possible to install pretty much any kind of Web technology into any server setup, you will find that some combinations of server and scripting languages work better than others. So let’s look at the more common Web technologies and discuss how they’re affected by various server environments.
Perl has been around long enough to have wide support across many server platforms, some modules being specific to certain builds of Perl depending on the server operating system. It would certainly be worth taking a look at the operation of specific modules if you intend to make use of them. To minimize the problem of cross platform inconsistencies, consider developing your Perl scripts in the same sort of environment as the live server you will eventually upload them to, particularly if you use system-specific functions or modules.
Out of all the possible scripting languages available today, Perl is the most frequently supported by hosts that offer scripting capabilities. Unless you utilize system or server specific modules, your use of Perl should not restrict your choice of host.
Perl is particularly suited to running on an Apache server, and Apache modules such as Mod_Perl have been designed to speed up the execution of Perl scripts. The Windows version of Perl is know as ActivePerl, and while Perl will run happily on a Windows machine there are a few subtle differences with some functionality.
PHP comes in two flavors: you can install it as an Apache module (which is great if you have Apache) or you can run it as a stand-alone CGI application. The CGI application is usually slower than the Apache module, so if you want to speed up your PHP scripts it’s usually best to go for PHP installed on an Apache server.
Note that PHP is not as well supported as Perl across the operating systems, although it is supported by all the major players in hosting. PHP also has functions that are specific to Apache and particular databases. File system functions are likely to cause problems with Windows systems, as many are *nix specific. Fortunately these functions are relatively few, and are noted in the documentation.
While the usage of PHP is still not as widespread across the Web as Perl, it has increased in recent times. This growth can be attributed to both its open source background and exposure to a wider audience. Being more straightforward to use than Perl, and boasting better support for interaction with remote servers than does ASP, PHP is set to continue its growth in popularity.
At the moment, most PHP hosting facilities are provided on *nix systems that run Apache, so PHP developers are more likely to find a Unix based host that will meet their requirements. Unless you make heavy use of ASP, it would probably be a good idea to go for a *nix system running Apache if you require the use of PHP; after all, the Apache module was specifically designed to speed up the execution of PHP.
Active Server Pages (ASP)
ASP is essentially a Microsoft invention, and until the advent of projects such as Chili!Soft ASP, Instant ASP and the Apache ASP module, it was limited to the Microsoft IIS server family. ASP support is fully integrated into IIS servers, so if you know that you’re hosted on IIS (which is typical for Windows machines), then you’ll probably be able to run your ASP scripts.
If a host offers you support for ASP on a *nix machine, they’re likely to use Chili!Soft ASP (I’ve yet to find a host that uses either of the other two solutions). Be aware however that this is not true ASP support; there are several important differences that should be taken into account if you intend to migrate your ASP scripts from one platform to another.
ASP 3.0 introduces features (namely the Server.Transfer method) that allow for dynamically including files based on server variables (which is a common request for ASP developers). Unfortunately, ASP 3 is only supported from IIS 5 (which is a feature of Windows 2000 machines), and has not yet been made available to users of earlier products. ASP developers that use Windows 98 or Windows NT machines to test their ASP pages will have to limit their use of the new ASP features if they wish to continue to test "in house".
Not a scripting language in its own right, FrontPage Extensions do offer some basic CGI interaction on sites. While they are associated with the Microsoft FrontPage series, they are not limited to Windows servers.
FrontPage Extensions are merely an extension of the FrontPage program. The files, when installed on a server, allow the program to interact with the server; it can upload your entire Website without your knowing anything about FTP. Other features of the extensions are that they allow you to add some limited functionality to your site. For example, you can allow your visitors to leave messages on a comments page, or make your entire site searchable without knowing any scripting languages or installing any scripts.
Having said that, if you require FrontPage support from your host, make sure that you have the right extensions installed for the product you use. Trying to use one of the latest features of the extensions when the extensions are, in fact, older than your program can lead to problems.
Perl FAQs – frequently asked questions about Perl from the Comprehensive Perl Archive Network.
Perl Faqts – another useful resource for those that have questions about Perl.
Platform Dependant Perl Modules – make sure you know what they are if you use different servers.
PHP.net – keep yourself updated in the latest developments in PHP.
PHP Faqts – useful PHP links as well as many PHP related questions and answers.
ASP Faqts – ASP resources with a publicly available question and answer area.
Chili!Soft – learn more about Chili!Soft ASP for *nix systems.
Instant ASP – a Java based solution for getting ASP support on *nix systems.
Due to the growing desire for interactive Web content, databases are playing an increasingly important role in the creation and storage of dynamic content. Like many other factors associated with Web hosting, the database technology you choose to use will affect your choice of host.
Not surprisingly, there are both advantages and disadvantages to using particular database software. You should have some idea of what you’ll want to store in your database before you can decide which database solution suits your needs.
The simplest databases are flat-file databases, consisting of a single file, or group of files in a format known by those that wish to make use of them. Due to their simple and predictable format, they can be made to work with any scripting technology that’s capable of reading and parsing the file (after some programming). Each line is either one field entry, or is split up by a common delimiter into several field entries.
- Offer full control of the way the data is stored and accessed.
- Are both platform- and scripting language-independent.
- Can prove fast to implement and use for small straightforward data sets.
- Their data is human readable when viewed in standard text editors.
- They do not scale well, as all data needs to be read to perform a search.
- They are not well suited to concurrent data access, which makes them susceptible to corruption.
- You need to know about a particular flat-file database’s structure before you can use it.
- They are difficult to use as a relational database; more data duplication is likely.
- No functions are available, so all manipulation has to be done by the language being used.
MS Access and MS SQL
These two Microsoft database offerings are usually confined to use with ASP pages on a Windows server, but can, with the correct Open Database Connectivity support, also run on Unix, Apple Macintosh and OS/2 systems.
Access is simply a scaled down version of Microsoft SQL, although it does not tend to scale as well in terms of simultaneous connections or function support. If you intended to use a Microsoft solution for a large or busy database then you should go for Microsoft SQL. Microsoft Access is more suitable for small hobby sites or low traffic business sites where it is less likely to suffer heavy usage, which would slow down the speed of a site.
- Relational databases make data management easier.
- Both have support for an image data type.
- MS SQL allows access across servers hosting the same databases.
- Software licences required to be able to edit and use these databases.
- Access can bring down entire servers if not used correctly.
- Difficult to use in non-Windows environments (support for ODBC needed).
While current versions of MySQL are optimized for use on *nix platforms in particular, MySQL can be built to work with most modern systems by compiling the source code. Performance of MySQL is greatly affected by performance of the system: the stability of the operating and file systems, and support for multithreading having the largest impact.
- Software is open source, so it’s free to use and widely available.
- It’s a well-used database solution, so stability is well tested and documented.
- Good all-round support for many features despite its low cost to use.
- Various sizes of text and binary data types offer better optimisation for database design.
- Relational database makes data management easier.
- More difficult to use for those new to databases.
- Arguably not truly rational using Codd’s rules.
Oracle can be configured to run on a multitude of platforms and operating systems and has proven to be very scalable and reliable — so there’s little wonder why it’s become so popular.
- Has data types that can write directly to the file system.
- Has the capacity to handle extremely large amounts of data.
- Highly configurable database server.
- Relational database makes data management easier.
- High cost has restricted its use with low-cost Internet applications.
- Vast configuration options may require a well-trained database administrator.
Database Related Books
Access Database: Design and Programming
Programming the Perl DBI
SQL in a Nutshell
9. Multimedia Support
If multimedia support is important to your site then you really should spend the time (and money) needed to obtain a level of host service that will meet your needs. To be fair, you cannot expect a great deal of support from a budget-price hosting account. Serving multimedia files to your visitors will require considerable of resources, particularly bandwidth.
Flash and Shockwave Animation
While Flash and Shockwave animations appear to be rather dynamic (in the sense that it’s possible to change the way they work depending on your systems capabilities), they are in fact rather static in nature. They will work on any server that supports the MIME types that are associated with them and don’t require any specialist server software.
Flash and Shockwave presentations can be described as an interactive image, as the presentations themselves are usually just a single file that can be downloaded to your computer before they’re started. This can prove to be a problem if you don’t want your visitors to be able to store copies of the presentations on their computers, since the full presentation is likely to be downloaded before it can serve its purpose.
Synchronized Multimedia Integration Language (SMIL)
SMIL is a language that allows greater flexibility in the presentation of audio, video, text, animation and graphics: you can reuse and remix these multimedia elements, reducing the need to create separate clips for each different version of a presentation. SMIL enables users to select viewing options when they’re made available (for example to allow for their slow download speed or choice of language).
While not yet as versatile as Flash or Shockwave, SMIL can provide an alternative, as it allows the user and site owner a degree of flexibility around, respectively, the use and combination of multimedia elements available to them on the server. In the future, SMIL could provide a means to incorporate timed elements (for example, rotating banners) into sites without the need for a scripting language.
The Internet has altered people’s expectations of shopping and communication: we now expect things to be much faster than they once were. When given the option to activate a large download as soon as there is enough information buffered to do so (and allow the rest of the data to download in the background), few will instead choose to wait for the download to complete before activation.
Streaming media support is essential if you intend to host something like a live Web cast, and if you’re considering such activities, you may need to have a dedicated server set up specifically to deal with the requests and provide the resources needed. Even if you don’t broadcast live events, you may still need specialist commercial streaming software to provide the functionality you require.
For a server to be able to stream media data, it needs to have at least one of the three recognized protocols installed:
- User Datagram Protocol (UDP),
- RealTime Streaming Protocol (RTSP) or
- RealTime Protocol (RTP).
The main difference between these protocols and others such as HTTP or FTP is that they will carry on streaming the data regardless of whether a packet was lost in the transmission: data is not retransmitted if it is lost.
The most enjoyable multimedia presentations are those that you can control. RTSP is a two way streaming protocol that allows the visitor to interact with the media by sending messages back to the server to control which part of the presentation to send next. Of course, you can expect to pay considerably more for a server that supports RTSP as opposed to RTP.
How much? How Fast?
However you decide to serve your multimedia files to the world, there is one thing you can be sure of: they will use a lot of bandwidth and data transfer. It’s not uncommon for audio and video clip files to top a megabyte — multiply that by even a modest number and you’ll begin to see the problems associated with offering a few large files on your site, even if they aren’t accessed all that often.
You should consider your data transfer quota carefully, as frequent requests for large files will see your data transfer totals explode! It’s always a good idea to find out what the additional transfer costs will be, and even the service level provider that will provide the bandwidth. Some people prefer to steer clear of low fees for additional data transfer, believing that you get what you pay for and that the price reflects the quality of service that a host can provide.
If you are going to make use of any kind of streaming media, then the quality of bandwidth can become very important to you. These are the kinds of situations when you really should start to think about a host with a burstable bandwidth plan, as while you may pay that little extra for it each month, you really don’t want to end up broke because of your bandwidth usage!