1. 程式人生 > >.html 、.htm 、 .shtml 以及 .shtm 四種副檔名的檔案區別

.html 、.htm 、 .shtml 以及 .shtm 四種副檔名的檔案區別

.htm VS .html

首先來看 .htm 和 .html 檔案的區別。答案居然是:它們是相同的

事實上,這只是個人喜好問題,保持統一的字尾名即可。習慣上,windows 通常會用 .htm 的字尾名,而 linux(unix) 會用 .html 字尾(在 linux 中,如果開啟 .htm 的檔案,會直接展示原始碼)。這是因為很久以前,作業系統(DOS)的平臺是 window 3.x.x,系統對於檔案有個 8.3 約束(8.3 naming convention),即檔名只能是 8 個字元,字尾只能是 3 個字元,所以當時顯然無法使用 .html 字尾。而現在,這些問題都已經不復存在了。(個人感覺 .html 更正規一點,一些人認為使用 .htm 是回到了 dos 時代)

還有個問題是服務端的,如果服務端某資料夾下同時有 index.html 和 index.htm 檔案,URL 省略了後面的檔名(如http://www.domain.dom/dirname/),那麼顯然一個檔案會優先於另一檔案被讀取(先解析 index.html)。事實上,我們一般不會在同一個資料夾下儲存兩個 index 檔案。

.html VS .shtml

接著來說說 .html 和 .shtml 檔案的區別,簡單說 .shtml 檔案就是 html 檔案加個 ssi。那麼,ssi 又是什麼鬼?其實這玩意兒之前已經接觸過,在 Apache下開啟SSI配置使html支援include包含 一文中。

SSI 是 Server Side Include 的首字母縮略詞。包含有嵌入式伺服器方包含命令的 HTML 文字。在被傳送給瀏覽器之前,伺服器會對 SHTML 文件進行完全地讀取、分析以及修改。SSI 就是在 HTML 檔案中,可以通過註釋行呼叫的命令或指標。SSI 具有強大的功能,只要使用一條簡單的 SSI 命令就可以實現整個網站的內容更新,時間和日期的動態顯示,以及執行 shell 和 CGI 指令碼程式等複雜的功能。 網站維護常常碰到的一個問題是,網站的結構已經固定,卻為了更新一點內容而不得不重做一大批網頁。SSI 提供了一種簡單、有效的方法來解決這一問題,它將一個網站的基本結構放在幾個簡單的 HTML 檔案中(模板),以後我們要做的只是將文字傳到伺服器,讓程式按照模板自動生成網頁,從而使管理大型網站變得容易。

應用它可以把網站中一些公共區域做成獨立的頁面,然後利用此技術嵌入到其它需要此區域內容的頁面中去。

機制:

SSI 機制是動態包含,而不是靜態生成,是由 web伺服器比如 apache 在收到使用者的請求時,如果解析到其中有 SSI 包含指令時,自動取出被包含的頁面嵌入到被請求的頁面中一起當做一個整體的頁面傳送給使用者,對使用者來說根本不知道伺服器做了啥,只是知道得到一個完整的頁面。

由 SSI 工作機制我們知道,包含動作是在每次使用者請求頁面時發生,所以如果被包含的頁面內容有變化,也能實時的反應出來,正因為如此,就很容易用來實現靜態頁面的動態嵌入,我們就可以用來實現網站中全站公共區域,或是出現很多的重複區域內容釋出成一個獨立靜態頁面,然後在需要的地方用SSI指令包含進去,比如像全站的頭部和尾部,全站最新新聞等等。

事實上,.html 的檔案同樣可以開啟 SSI,只需在 apache 裡進行相應的配置,一旦開啟 SSI,.html 檔案和 .shtml 檔案可以一樣對待了。

AddType text/html .shtml .html
AddOutputFilter INCLUDES .shtml .html

至於 .shtm 檔案,window7 apache 下直接在瀏覽器中打開了原始碼。

Read More:

【轉自】 http://www.cnblogs.com/zichi/p/5111159.html