A really brief history of web development
The world of web development has come a long way! Once upon a time, developers would create HTML (Hypertext Markup Language) pages by typing in code for each page that was to be part of a web site. For example, <b>hello world</b> would result in "hello world". HTML editors such as Dreamweaver came on the scene and creating code became much easier: a developer could highlight "hello world," click on the bold icon in the editor, and get "hello world" While this saved time, web code editing software were stand-alone purchases that cost hundreds of dollars and had to be installed on high performance computers.
In order to appreciate the evolution of web development, one must understand the difference between static and dynamic HTML. In a static world, developers would create HTML pages one-by-one. Each static HTML page was independent from all others. In a dynamic world, developers could change a single file (php, asp, cfm and MANY others) that would then change other files. For example, a header file with navigation (home, contact, about us, etc) may needed to be updated often. Static HTML would be a slow way to update the entire web site when a new page is added. So, a smart developer would create an index.php file (home page) that says, "when I get loaded, also load the file called header.php" This means that every subsequent page (such as about_us.php, contact_us.php) would also get updated automatically when header.php changes.
Along with the development of desktop software for web developers, a movement to create web sites without having to download any desktop software had begun. The theory was that users could use an Internet browser such as Netscape, Firefox, Safari and / or Internet Explorer to login and then make changes to their web site. The solutions were built using dynamic pages as described above, and also connected to a database. These solutions were called Content Management Systems (CMS).
So, imagine that you have lots and lots of content. Imagine that you want to update and display the content in the most efficient way possible. One way to do this would be to adopt a hierarchical approach. So, let's assume that your web site is all about family pets, and this is the structure: