htm、html、shtml網頁區別
首先htm、html、shtml都是靜態網頁的后綴,三者也可以說都是只是擴展名不同,其他一樣,都是靜態的網頁。
Htm和html是完全靜態的網頁不通過服務器編譯解釋直接送出給瀏覽器讀取的靜態網頁,以Htm和html偽靜態Request除外。
html、htm、shtml、shtm均是靜態html網頁。都是網頁文件后綴名不同的html網頁擴展名。
一、Html與htm
.html與.htm均是靜態網頁后綴名,網頁文件沒有區別與區分,html與htm后綴網頁后綴可以互換,對網頁完全沒有影響同時也沒有區別。可以認為html與htm沒有本質區別,唯一區別即多與少一個“L”。
二、Shtml與shtm
shtml命名的網頁文件里,使用了ssi的一些指令,就像asp中的指令,你可以在SHTML文件中寫入SSI指令,當客戶端訪問這些shtml文件時,服務器端會把這些SHTML文件進行讀取和解釋,把SHTML文件中包含的SSI指令解釋出來。
而shtml與shtm后綴的網頁文件沒有區別,后綴名可以互換,區別在於和html與htm一樣多與少“L”。
三、Html與shtml區別
本質上都屬於靜態網頁一種,html屬於純靜態,客戶端瀏覽器讀取html文件是什么就呈現給瀏覽者什么內容。而shtml則可以使用SSI。
四、shtml的SSI功能
SSI是為WEB服務器提供的一套命令,這些命令只要直接嵌入到HTML文檔的注釋內容之中即可。如:
<!--#include file="info.htm"-->
就是一條SSI指令,其作用是將"info.htm"的內容拷貝到當前的頁面中,當訪問者來瀏覽時,會看到其它HTML文檔一樣顯示info.htm其中的內容。
假如我們A頁面是shtml的靜態網頁,而A頁面里我們使用了include包含嵌入B靜態html頁面,如果你的服務器空間支持Shtml SSI這個時候我們,瀏覽器打開A頁面時候,就會在A頁面顯示A原本內容以及B頁面內容,我們查看網頁源代碼,不會發現B頁面引入痕跡,而是看到B頁面內容完全在A頁面里。
假如:
1、A shtml頁面里內容是:
我包含頁面B:<!--#include file="b.html"-->
2、B html網頁內容:
我是B頁面內容
3、這個時候瀏覽器查看A頁面HTML源代碼:
A shtml頁面里內容是:我是B頁面內容
這個就是shtml ssi 包含include魅力之處。
其它的SSI指令使用形式基本同剛才的舉例差不多,可見SSI使用只是插入一點代碼而已,使用形式非常簡單。
當然,如果WEB服務器不支持SSI,它就會只不過將它當作注釋信息,直接跳過其中的內容;瀏覽器也會忽略被包含信息,我們可以查看源代碼看到include引入注解信息。
五、如何在我的WEB服務器上配置SSI功能?
在一些WEB服務器上(如IIS 4.0/SAMBAR 4.2),包含 #include 指令的文件必須使用已被映射到 SSI 解釋程序的擴展名;否則,Web 服務器將不會處理該SSI指令;默認情況下,擴展名 .stm、.shtm 和 .shtml 被映射到解釋程序(Ssinc.dll)。
詳細iis配置shtml與php apache配置SSI shtml,大家可以在網絡上搜索相關教程文檔。
shtml和shtm是服務器動態產生的靜態網頁,需要服務器自帶SSI處理出來靜態網頁。
定義:html,htm是一個完全的超文本靜態網頁——hypertext markup language
shtml是一種用於SSI技術的文件——Server Side Include--SSI。
shtml是什么格式,比html有何好處? shtml,html格式是差不多,shtml主要可以使用include(包含html),經過服務器生成靜態頁面。
Shtml的頁面可以使用include嵌入另外的html頁面這樣可以使得一個網站里共用相同辦法分離出來使用include來嵌入到靜態頁面里。靜態頁面則不能!
Shtml使用方法
<!--#include file="網頁文件地址"-->
假如一個網站頭部和導航、底部各個頁面完全相同,則可以分離出這些部分分別放到一個html頁面里,然后使用include嵌入到一個shtml頁面里。特別說明html和htm不能使用include,即使使用也無效。要想服務器能解析shtml網頁頁面,必須在服務器IIS中開SSI。windows 2003下 解決.shtml的文件不能訪問shtml在2003下默認不支持,要支持的話可以做如下修改:
1:在主機管理-管理-自定義Mime類型 中,添加 擴展名 .shtml Mime類型為text/html 一般就可以了 如果嵌套的語法不行,則需要做第二步修改
2:在服務器的配置里添加個映射:c:/windows/system32/inetsrv/ssinc.dll 擴展名.shtml 動作限於GET,POST 2003的系統下要記的在IIS管理器里的web服務擴展里把 在服務器端的包含文件 修改為 允許最后最好重啟下服務器。