In the spirit of trying to develop an understanding of how web sites work, we need to start with looking at the difference between dynamic and static web pages. Even though the difference seems obvious, young developers have never had the opportunity to learn the difference, so here goes. A static webpage is one that delivers the same content, every time the page is loaded, for every person that wants to view the page. The only way to change the content is to edit the HTML. Here is a sample of a static web page:
<html> <head> <title></title> </head> <body> <p>Hello World.</p> </body> </html>
No matter who views the page, all it is ever going to is deliver the message "Hello World".
An good example of a dynamic web page is MSNBC. Nearly every time someone views the page, the news has been updated, and news stories are rotated in and out. If one chooses, they can also personalize the web page so that local news is also included. The code behind a page like that is too complex to include here, but can easily be viewed in the browser of your choice. The visible code is only part of the picture there. With dynamic pages, there is a ton more happening more happening than is readily apparent.
Now that we have a grasp of the difference between dynamic and static content, we can look at how dynamic content is generated. First we break it down into client side code, and server side code. Simply put, the client side code is the code that is delivered to your browser, and can consist of HTML, CSS, and Javascript. Server side code is everything else. This is the part that people have trouble understanding, so let's look at what happens when one requests a web page.
When the client makes a request for a web page, the request is sent out into the world, and eventually the request makes it to the correct server. The server gets the request, and the server sends the page back to the client. In the case of a static page, the content is simply sent back to the client. In the case where dynamic web content is being generated, then the picture is a bit different. Take, for example, when you click on a link at a forum. the request goes out to the server, along with some bit of information that tells the server which link was clicked. Once the request gets to the server, the server directs the request to the controller. The controller is an application, or set of applications, that determine the content that is to be returned to the client. In this example, the controller gets handed the request. The controller knows that, for instance, the user clicked on the link for the section of the forum that deals with programming questions. the controller then knows it needs to access the database and get the content that relates to the programming section. From there, the content gets handed to helper applications that assemble and format the code into HTML, which is then passed back to the controller. The controller then passes it back to the client that requested it. Here is a picture that roughly shows the process.
*******************
Now with a bit of understanding about how dynamic web pages are created, we can turn to how to actually develop dynamic content, and this is another place where people get a bit confused. First of all, developing dynamic content means learning more than just HTML, CSS, and/or Javascript. The three technologies just mentioned are client-side languages, meaning that the only thing they can really do is generate web pages, although with Javascipt and AJAX, one could simulate dynamic content, but that is limited in application.
What that means is that in order to develop dynamic content, one either needs to learn an actual programming language, or learn to use a content management system like Joomla. The programming language one chooses is largely irrelevant, whether it be Java, PHP, C#, Perl, or any other number of languages. In order to store a large amount of content, one will also need to know how to use a database, or at a minimum, store data as text files of some sort.
There is no way possible to write a guide that can show how to develop dynamic web content since there are so many aspects involved, and each aspect alone is too much to understand in one lesson. The purpose of this introduction is only to give an overview of the skills needed, and a basic understanding of dynamic page generation.