转载源:http://www.divcss5.com/html/h59.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后缀的网页文件没有区别,后缀名可以互换,区别在于和shtml与shtm一样多与少“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配置ssi:http://www.hzcuizhai.com/fuwuqijiaocheng/IIS/34778.html
tomcat配置ssi:https://blog.csdn.net/sanyuedexuanlv/article/details/27324783
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服务扩展里把 在服务器端的包含文件 修改为 允许
最后最好重启下服务器。