- Depending on what is pulled in, changing the structure of all the pages in the site may mean editing many files.
- The content can't be presented in different ways for different purposes. It can't be reused.
SSI can set variables. The variables can contain anything that is a string. The variables can be substituted for text just about anywhere, including in the URI in an SSI command.
What does that mean? It means that content can be put in a file that calls a “page” to display itself. The steps are:
- Set one or more variables with content.
- Call a template file, either a fixed one, or, and here's the beauty of it, one whose path is in a variable that was set before the content file was called.
- The template file puts the content variables in the appropriate places.
What's more, one template can be used for many pages, potentially an entire site. So, if the site structure or style changes, only one file has to be modified.
In some sense, this turns SSI into an object-oriented system, bringing it into the modern era of system architecture. The variables are object attributes and the template file is the method. What's more, the method can be anything. Unlike most OO languages, it doesn't have to be hard coded. (Although it could be by using #if conditional processing to choose among a fixed set of methods.)
Regardless, the possible uses of this technique are limited only by one’s imagination. The output can be anything that is deliverable in response to a Web request, even JSON. And, it can be driven by parameters in the URL that called it. (Apache SSI has access to the query string.) RESTful services anyone?