Web servers and hosting your web site
A "web server" is a computer and the specialized software that responds to web page requests, sending back the web page and any related data. Web servers, well, they service requests made by users with web browsers. When a request arrives at the web server, the server software looks at the request, decides what to do, and sends back a response. Usually the web server sends back an HTML or image file, but the response can be more complicated like making database queries, constructing a chart of data, etc.
The web is a 24x7 operation, meaning that it stays open 24 hours a day 7 days a week 365 days a year. The web does not sleep, because the web is worldwide and anybody anywhere in the world may want to look at your web site at any time.
I've had many people ask if they make their web site in their computer, isn't that all they need to do? No. That is, can you leave your computer connected to the Internet for the 24x7 time period all year long? And, if you were able to do so, how would the rest of the world find your computer? And, finally, would your connection to the Internet support the bandwidth requirements of all the people who want to retrieve your web site? No.
Web hosting, rental space for your web site
You should rent a web server rather than trying to do it yourself. The people you rent the web server space from do a big service; namely, they make sure that anybody in the world can get to your web site at any time of the day. To do that they operate a specialized temperature-controlled room with reliable power, high speed Internet connections, and staffed by expert technicians. It's difficult and expensive to duplicate this yourself, so it's a lot easier to let someone else handle this hard stuff.
The files that are the web site "content" have to be stored somewhere. What would happen if they were only stored on your own personal computer? Well, when you turn it off for the night, or when you go away for a long vacation, etc, nobody would be able to read your web site. And how would anybody in the world get to the files stored on your computer anyway?
There are hundreds of companies called "web hosting providers" who perform a specialized service. They "host" web sites. That is, they operate the computers and software required to keep a web site available 24x7, and strive towards 100% reliability.
Hosting arrangements, needs and requirements
Now let's think about the kind of hosting arrangements there are, and what you need.
The first question to consider is the level of needs you have. This question goes back to the step of brainstorming your site's purpose. Depending on the purpose you will need lesser or greater levels of service from your web hosting service provider.
Here's a few types of needs to consider:
- Need e-mail only, no web site: You just want an email address and do not care about having a web site.
- "Static" web site, no fancy multimedia: That is, a web site where you write the web pages and post them and that's it. The word "static" implies that the pages stay the same each time someone views them.
- "Dynamic" web site: The distinction between "static" and "dynamic" is that for a "dynamically generated" page some software runs inside the web server to create the actual content of the page each time it is viewed.
- Wiki, weblog, forums, etc: These are specialized forms of dynamic web sites. You may find service agencies who will host the sites for you.
- Mailing lists: Mailing lists can be used for discussion or one-way announcements, and are a very ancient and time-honored way on the Internet of connecting groups of people together.
- Catalogs and shopping carts and e-commerce: This is if you're going to sell things that you stock in a warehouse and ship to customers.
- Fancy multimedia: Streaming multimedia such as Real Video, Windows Media or Quicktime. These require specialized server software.
- You are expecting high traffic loads: Are you aiming to reach a zillion people per day? You'd better have web servers that can handle it.
Each of these needs in turn presents different requirements of the server you end up renting. It's important to understand why, so next I'm going to list the types of web hosting arrangements you can get, and the types of services you can do with each.
- Shared hosting, FTP access to site: "Shared hosting" means that more than one web site, with more than one customer, is hosted on the server computer. In other words, the server is shared among more than one customer. The "FTP access" refers to the protocol used to upload web content to the web site. Every web editor supports the FTP protocol. This is almost always the cheapest hosting plan you can find, and is sufficient for many needs. (specifically "static content, no fancy multimedia")
- Shared hosting, Front Page extensions: This plan is the same but adds the "Front Page extensions" allowing users of Microsoft's Front Page software to upload their web content in the special proprietary protocol used by that application. Often this costs a few dollars extra per month, but may be included with the basic package.
- Shared hosting, shell access, CGI support: The "shell access" and "CGI support" features are useful for web sites requiring software to be written. "CGI" is a software technique often used for dynamically generated web sites. CGI software is usually written in the "perl" or "php" programming languages. CGI support is one way to install wiki, weblog or forum software on the web site.
- Shared hosting, streaming video: Streaming video or audio is very bandwidth intensive, and requires special server software. It always comes at a cost, and few web hosting providers give you this capability at all.
- Shared hosting, shopping cart service: If you want to set up a store on a web site, you need some kind of shopping cart system letting your visitors put together an order. The shopping cart service requires special software in your web site, and requires the CGI support (above). It of course also requires that someone enter products into the catalog database, handle orders from the web site, arrange for shipping, etc.
- Managed server: Sometimes your needs are big enough you can justify renting an entire computer. Renting an entire computer is more expensive than any of the shared hosting arrangements, and requires that you have a technical system administrator to support you. "Managed" servers are a middle step in which the web hosting company is very involved with day-day management of that server, keeping the software patched with the latest updates, and so on. You will need this level of service when your bandwidth is high enough, or the software inside the web site requires enough computing power that it overwhelms a shared server. Having a whole server computer lets you implement any of the fancier web site features already discussed, and much more.
- Dedicated server (unmanaged): A "dedicated server" is like a managed server, but you are in more control of maintenance of the computer. The costs will also be high, but less than for a managed server.
- Virtual Private Server (VPS): Is a step between shared hosting and a full dedicated server. A VPS is created through magical software that gives you the illusion of having a full server computer of your own, but the hardware is still shared between multiple customers. The cost is in-between shared hosting and dedicated server arrangements.
- Co-location: A co-location arrangement is similar to managed or dedicated servers, in that you have an entire server computer dedicated to your web site.
The difference is that you own the actual computer, and you are not renting it. You're still going to be renting space in a machine room and paying for bandwidth, but at least the computer is yours. Your computer must be installed in the web hosting providers server room, and they manage certain aspects but largely it is your computer and you are entirely responsible for it.
- Multiple servers with load sharing: For high volume web sites you'll need to think about sharing the load across multiple computers. This can be pretty complicated to set up, and expensive. You will need technical experts around to manage the computers.
Jargon decoder ring
Since there is a lot of jargon involved with web hosting services, let me offer this decoding of terminology. I am a registered professional geek, and aim to demystify all this stuff.
Control Panel: This feature is offered by some hosting providers, and is a specialized web page/site/service allowing you to configure many of the services. You can set up and configure email addresses, mail filtering, extra domain names, and other services.
Custom 404 pages:
Data Transfer (bandwidth): This is the amount of data that can be transmitted from your web site. It's hard to guage just how much you will need. There's two things to
consider, first is the amount of traffic your site sees, and second is the amount of data on your web site. The more traffic the more times files will be transferred from your site, and the more bandwidth that gets used. Also a site with big files, such as large images or video, the more bandwidth that gets used.
Domain name registration: The web domain names don't just appear out of thin air. They are coordinated by domain name registrar companies, for which you pay a yearly fee. Usually a web hosting company will aid you in registering the domain name, but you can also register the domain name yourself.
Merchant Account (credit card processing):
Real Audio, Streaming Audio:
Reseller arrangement: This lets you get into the web hosting business yourself, through reselling hosting services from an existing hosting provider. You would become a middleman, selling web hosting services, collecting fees, and handling billing for the real hosting provider.
Server Side Includes (SSI):
Any of the hosting plans offered will give you a specific amount of
disk space. That's the storage allotment. Usually if you use more disk
space than your allotment, there is an extra monthly fee based on the
amount of overage.