What it Takes to Make a Web Site
Professionally, I spend a great deal of time working with web sites. I also get to explain web site technology to computer science students. There are certain things common to web sites and the pattern of these things is presented here.
First, there is the concept of client and server. In computer terms, a client is software that makes a request and a server is software that responds to that request. It is like when you are in a restaurant; you are the client who requests food and the waiter is the server who brings you the requested food.
In web talk, the most common client is your web browser. Common web browsers include Microsoft Internet Explorer, Mozilla Firefox, Safari, and Opera. These pieces of software request web pages and other media over the Internet and then display the results of those requests to you.
The server in this case is a web server. Common web server software packages are Apache and Microsoft IIS. These computer programs listen for requests, try to interpret the request, and then send the results back. At the time of this writing, the LibertyBob web site is hosted on a machine where I rent space and use their Apache server to serve my web pages to persons like you who request them.
Web pages in their most simple form are just text. You may have seen references to HTML which stands for Hyper Text Markup Language. This is a simple language designed to tell your web browser how to display the page content. To see the HTML on this or any other web page, most computers will let you right-click the page and choose "View Source" or something similar. This should open up another window that shows you the HTML that defines that page.
A typical web site is a bit more complex. It requires five different types of people, or roles, to build a modern web site. Often these roles will be filled by fewer than five people, but all the roles need to be filled.
The first role is that of the Content Person. It is the job of the Content Person to decide what the web pages need to show, but not how it will be shown. This is about the text and pictures that will be visible to the visitors. As an example, on many news sites, the Content Person role is actually filled by the news writers who prepare the stories.
The second role is the Graphic Designer. This is the person who determines the layout of the site. Should the background be green or blue or have a picture of butterflies? These are decisions that should be made by a person who specializes in graphic display, usually with a standard marketing bent.
The fourth role is the Server Side Coder. This person helps maintain stability across the site. It is typical that the content of the web pages will be gathered from a database at the time of the web request and then placed into the HTML page before being sent to the requester. This allows the responses to be customized based on the request, like when you try to pay a bill on line and really only need to see your bill and not everyone else's. This also allows the Client Side Coder to make changes to one HTML file that will then go out to everyone regardless of the request rather than having to make changes to hundreds of files.
The fifth role is that of Database Coder. Most modern web sites keep their content and information about that content in a database. When the request comes in, the server side code interprets the request and then fetches the correct data from the database. Organizing, validating, storing, and retrieving that data requires someone who knows something about a database.
The database software used varies quite a bit. Common ones include MySQL, Microsoft SQL Server, Oracle, Postgres, and even custom database management systems written for main frame (big old) computers. You may have noticed that some of the names include "SQL". This is a reference to Structured Query Language which is a standard language to communicate with database software. It allows you to request data, but you can also use to store data or even describe how data should be stored. A good database programmer can make a lot of money. (At the time of this writing, I am a MySQL Certified Database Programmer.)
If you use a service that automatically makes your content available, it is likely that the service has provided the other four roles' functionality for you. If you are doing this from scratch, you have to do all of it yourself or as a team of people with their own specialties.
That is the brief overview of what web sites are and how they are managed. If you are interested in getting into it a bit more, there are a couple of good web sites to start with.
To learn more about client side activities and HTML, visit the free tutorials as http://www.w3schools.com.
To learn about the Java programming language, try http://java.sun.com.