上海著名景点排名::.shtm的文件是什么类型的文件?其作用或优点是什么?

来源:百度文库 编辑:神马品牌网 时间:2024/05/06 08:40:43

对流览器(IE,netscape等)一端的人来说,SHTML和HTML完全一样,没有任何区别,谈不上优点缺点,谈不上有无作用.

如果你是网站服务器一端的人,那就不同了.服务器一端的SHTML网页内容与送往流览器一端的内容是不同的,SHTML网页是用Server Side Includes (SSI)技术写成,通过服务器执行后,才把结果送到客户端(流览器端). 相比HTML,HTML网页内容服务器端和客户端收到的完全一样.

SSI技术开发的很早,那时还没有什么asp,php之类的东西.

SHTML在服务器端的网页里面,包含一些指令.

例如判断客户端的请求是来自IE还是netscape[SSI开发时,是流览器大战时期,"你这样做的,我那样做","你支持的我不支持",典型的是对汉字的支持方法和对背景音乐的支持方法],SHTML送往IE的内容能满足IE要求,送往netscape满足netscape的要求.

SHTML送往流览器端以前,可以把服务器端的别的文件嵌入进去,利用这点,可以把许多网页公用的内容,写在分开的单独的文件里,送的时候携带出去,利用这点,可以把网页常需更新的部分和不需更新的部分分在不同文件里,日常工作只要照管需更新的文件部分.

详细的SSI技术,网上有很多资料,这里不多说了.

SSI有什么用?

之所以要扯到ssi,是因为shtml--server-parsed HTML 的首字母缩略词。包含有嵌入式服务器方包含命令的 HTML 文本。在被传送给浏览器之前,服务器会对 SHTML 文档进行完全地读取、分析以及修改。
shtml和asp 有一些相似,以shtml命名的文件里,使用了ssi的一些指令,就像asp中的指令,你可以在SHTML文件中写入SSI指令,当客户端访问这些shtml文件时,
服务器端会把这些SHTML文件进行读取和解释,把SHTML文件中包含的SSI指令解释出来比如:你可以在SHTML文件中用SSI指令引用其他的html文件(#include ),服务器传送给客户端的文件,是已经解释的SHTML不会有SSI指令。它实现了HTML所没有的功能,就是可以实现了动态
的SHTML,可以说是HTML的一种进化吧。像新浪的新闻系统就是这样的,新闻内容是固定的但它上面的广告和菜单等就是用#include引用进来的。

目前,主要有以下几种用用途:
1、显示服务器端环境变量<#echo>
2、将文本内容直接插入到文档中<#include>
3、显示WEB文档相关信息<#flastmod #fsize> (如文件制作日期/大小等)
4、直接执行服务器上的各种程序<#exec>(如CGI或其他可执行程序)
5、设置SSI信息显示格式<#config>(如文件制作日期/大小显示方式)
高级SSI<XSSI>可设置变量使用if条件语句。

使用SSI
SSI是为WEB服务器提供的一套命令,这些命令只要直接嵌入到HTML文档的注释内容之中即可。如:
<!--#include file="info.htm"-->
就是一条SSI指令,其作用是将"info.htm"的内容拷贝到当前的页面中,当访问者来浏览时,会看到其它HTML文档一样显示info.htm其中的内容。
其它的SSI指令使用形式基本同刚才的举例差不多,可见SSI使用只是插入一点代码而已,使用形式非常简单。
当然,如果WEB服务器不支持SSI,它就会只不过将它当作注释信息,直接跳过其中的内容;浏览器也会忽略这些信息。

如何在我的WEB服务器上配置SSI功能?
在一些WEB服务器上(如IIS 4.0/SAMBAR 4.2),包含 #include 指令的文件必须使用已被映射到 SSI 解释程序的扩展名;否则,Web 服务器将不会处理该SSI指令;默认情况下,扩展名 .stm、.shtm 和 .shtml 被映射到解释程序(Ssinc.dll)。
Apache则是根据你的设置情况而定,修改srm.conf如:
AddType text/x-server-parsed-html .shtml 将只对.shtml扩展名的文件解析SSI指令
AddType text/x-server-parsed-html .html将对所有HTML文档解析SSI指令
Netscape WEB服务器直接使用Administration Server(管理服务器)可打开SSI功能。
Website使用Server Admin程序中的Mapping标签,扩展名添加内容类型为:wwwserver/html-ssi
Cern服务器不支持SSI,可用SSI诈骗法,到http://sw.cse.bris.ac.uk/WebTools/fakessi.html 上下载一个PERL脚本,即可使你的CERN服务器使用一些SSI指令。(不支持exec指令。)