.html 、.htm 、 .shtml 以及 .shtm 四種擴展名的文件區別

jopen 8年前發布 | 7K 次閱讀 HTML 操作系統 前端技術

新增了一個分類,叫做 Personals ,中文我把它解釋成 "個人惡趣味",這里將記載一些對工作無關緊要,但是個人又一時有興趣了解的東西。

今天要講的是如題的 4 種擴展文件的區別。和大多數人一樣,我首先接觸到的也是 .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

具體配置方法可以參考 Apache下開啟SSI配置使html支持include包含

至于 .shtm 文件,window7 apache 下直接在瀏覽器中打開了源碼。

</div>

來自: http://www.cnblogs.com/zichi/p/5111159.html

</span>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!