Future Media Standards & Guidelines

XSSI (eXtended Server Side Includes) Standards v1.1

1. Introduction

XSSI (eXtended Server Side Includes) is a part of Apache. The XSSI module (mod_include) defines a set of commands that Apache will parse after a page is requested, but before it's sent to the browser. XSSI are used extensively within BBC sites and are often favoured for dynamic content manipulation rather than client-side scripting (such as for time-dependent HTML/content changes). This is because, as a server-side function, we can be assured that the content will be delivered as intended, regardless of the client technology. For the full XSSI specification see the Apache HTTP Server v2.2 Module, mod_include. This standard does not apply to sites built on the FORGE stack.

Top of page

2. Usage notes

2.1 XSSI SHOULD be used to ease site maintenance, by moving common elements that are regularly changed into files that can be included.

For example, XSSI are also used within the BBC's global template system (Barlesque) to configure and respond to settings for page layout. For further details, see Using Barlesque to Develop bbc.co.uk WebsitesRestricted access - Post-NDA only.

This SHOULD be balanced with the knowledge that the use of XSSI (especially <!--#include ... -->) increases server load.

2.2 You SHOULD be aware of any protected namespaces in XSSI, e.g. 'blq_'.

You MUST NOT use the exec CGI functionality of XSSI, as this has been disabled on BBC live web servers due to security concerns. You MUST use the alternative technique of 'include virtual'.

2.3 The only files on BBC live web servers which are server-parsed are those with the corresponding file extension, as defined in the File Extensions Standards. You MUST NOT change this by attempting to use any of the following:

  • The "Xbit hack" method, which is deprecated
  • The use of addHandler or SetOutputFilter directives, which are deprecated.

Whenever possible, you SHOULD use #include file to reference included data, as performance benchmarking has shown an increase in server load when using #include virtual. #if, #echo, and #set statements use significantly less server load than either of the above.

Server-side parsed pages MUST have the file-extension .shtml on www.bbc.co.uk or .stm on news.bbc.co.uk.

When server-side including files, you MUST use the file-extension .ssi when the file is not parsed and .sssi when the file is parsed (with the exception of systems like Barlesque).

Top of page

3. Document history

DateVersionChangeAuthor
06/10/2009 v1.1 Updated to reflect new technologies and BBC processes. Ed Lee
22/06/2004 v1.00 Renumbered as v1.00 on approval by Standards Exec Jonathan Hassell
14/06/2004 v0.12 Correction of typo, required by Tech Forum on 14/06/2004 for approval Jonathan Hassell
07/06/2004 v0.11 Reorganised and tidied to make it useful as an interim standard (while the longer document is worked upon) Nick Holmes, Jonathan Hassell
13/04/2004 v0.1 Extracted genesis of XSSI standards sections from v0.31 of HTML Integrity standards doc; to be developed by Apache WG Jonathan Hassell

Document editor: Editor, Standards & Guidelines. If you have any comments, questions or requests relating to this document, please contact the Editor, Standards & Guidelines.

Like all other Future Media Standards & Guidelines, this page is updated on a regular basis, through the process described on About Standards & Guidelines.

Top of page

bbc.co.uk navigation

BBC © 2012 The BBC is not responsible for the content of external sites. Read more.

This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.