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.
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.
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.