详解 .htm、.html、.shtm、.shtml 文件后缀的区别与联系
一、html 与 htm
关于 HTML,HTML (HyperText Mark-up Language) 即超文本标记语言,是 WWW 的描述语言。设计 HTML 语言的目的是为了能把存放在一台电脑中的文本或图形与另一台电脑中的文本或图形方便地联系在一起,形成有机的整体,人们不用考虑具体信息是在当前电脑上还是在网络的其它电脑上。我们只需使用鼠标在某一文档中点取一个图标,Internet 就会马上转到与此图标相关的内容上去,而这些信息可能存放在网络的另一台电脑中。HTML 文本是由 HTML 命令组成的描述性文本,HTML 命令可以说明文字、图形、动画、声音、表格、链接等。HTML 的结构包括头部 (Head)、主体 (Body) 两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容。
关于 HTM,实际上 HTM 与 HTML 没有本质意义的区别,只是为了满足 DOS 仅能识别 8+3 的文件名而已,因为一些老的系统 (win32) 不能识别四位文件名,所以某些网页服务器要求 index.html 最后一个 l 不能省略。MSIE 能自动识别和打开这些文件,但编写网页地址的时候必须是完全对应的,也就是说 index.htm 和 index.html 是两个不同的文件,对应着不同的地址。值得一提的是 UNIX 系统中对大小写敏感,不吻合的话就可能报没有文件或者找不到文件。
二、shtml 与 shtm
关于 shtml,shtml 是一种基于 SSI 技术的文件,也就是 Server Side Include——SSI 服务器端包含指令。一些 Web Server 如果有 SSI 功能的话就会对 shtml 文件特殊处理,服务器会先扫一次 shtml 文件看有没有特殊的 SSI 指令存在,如果有的话就按 Web Server 设定规则解释 SSI 指令,解释完后跟一般 html 一起调去客户端。
关于 shtm,shtm 与 shtml 的关系和 htm 与 html 的关系大致相似,这里就不多说了。
三、html/htm 与 shtml/shtm 的关系
html 或者 htm 是一种静态的页面格式,也就是说不需要服务器解析其中的脚本,或者说里面没有服务器端执行的脚本,而 shtml 或者 shtm 由于它基于 SSI 技术,当有服务器端可执行脚本时被当作一种动态编程语言来看待,就如 ASP、JSP 或者 PHP 一样。当 shtml 或者 shtm 中不包含服务器端可执行脚本时其作用和 html 或者 htm 是一样的。