服務器端內嵌

服務器端內嵌 （ Server Side Includes ， 亦簡稱爲SSI ） 是一種大多數僅應用於互聯網上的簡單解釋性服務器端腳本語言 。 SSI最常見的用法是將一個或多個文件的內容包含在網頁服務器的頁面上 。 例如 ， 一張包含每日報價的頁面可以通過下面一段代碼將報價單包含在頁面中 ： 若更改quote.txt文件 ， 則所有包含此文件的頁面都會展示最新的每日報價 。 這個包含不止侷限於文件 ， 而且還有來自程序的文本輸出 ， 或者是如當前時間的系統變量 。 服務器端內嵌常用於在整個站點中包含一段公共代碼 ， 例如頁眉 、 頁腳與導航欄 。 使用控制代碼可以有條件地將導航欄包含在內 。 爲了讓網頁服務器辨識啓用了服務器端內嵌的HTML文件 ， 從而運行這段代碼 。 則文件名應有特殊的擴展名 ， 默認爲.shtml 、. stm和.shtm ； 或者服務器設置文件的執行標記以配置爲允許服務器端內嵌 。 作爲一種簡單的編程語言 ， 服務器端內嵌僅支持一種數據類型 ： 純文本 。 它的控制流程相當簡單 ， 支持選擇 ， 但循環不被原生支持 ， 且只可以通過包含遞歸式或URL重定向的方式進行 。 這種簡單設計的語言使得其比大多數服務器端腳本語言都更易於上手學習使用 ， 而複雜的服務器端處理過程通常使用功能更豐富的編程語言之一來完成 。 服務器端內嵌擁有圖靈完備性 。 Apache 、 LiteSpeed 、 nginx 、 lighttpd與IIS五大主流網頁服務器軟件均支持此種語言 。 SSI的語法相當簡單 ： <!--#directive parameter=value parameter=value --> 。 這些指令都放在HTML註釋區 ， 所以若SSI功能並未啓用時 ， 除非其預覽頁面源代碼 ， 否則用戶將不會在頁面上看到這些SSI指令 。 請注意這種語言的語法中不允許在開頭的 " < " 和指令之間存在空格 。