黑马程序员技术交流社区

标题: .html,.htm,.shtml,.shtm的区别与联系 [打印本页]

作者: 香菇    时间: 2016-11-15 16:33
标题: .html,.htm,.shtml,.shtm的区别与联系
首先,介绍下.html和.html
html是当今网页文件的一种最基本的,也是使用最广泛的保存格式,是一种超文本标记语言,是WWW的描述语言,与PHP、jsp、asp之类的动态网页技术所保存的文本格式不同,页面中没有嵌入任何服务器端要执行的语句,是一种静态的页面格式,一般的浏览器都能够直接解释并显示。
关于htm,其实与html并没有本质意义上的区别,只是为了满足DOS的8+3(文件名不能超过8个字符,扩展名不能超过3个字符)的文件名名规范。因为一些老的系统(32位)不能识别4位文件扩展名,所以某些服务器要求.html的最后一个l省略。浏览器能自动识别和打开这些文件,但编写这些网页网址的时候必须是对应的,也就是说index.html和index.htm是两个不同的文件,对应着不同的地址。

其次,介绍下.shtml和.shtm
关于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技术,当有服务器端执行脚本时被当作一种动态语言来看待,就如PHP、JSP或者ASP一样。
当shtml或者shtm中不包含服务器端可执行脚本时其作用和html或者htm是一样的。

SHTML和HTML的区别,如果用一句话来解释就是:SHTML 不是HTML而是一种服务器 API,shtml是服务器动态产成的html.
虽然两者都是超文本格式,但shtml是一种用于SSI技术的文件。 也就是Server Side Include--SSI 服务器端包含指令。 如果Web Server有SSI功能的话(大多数(尤其是基于Unix平台)的WEB服务器如Netscape Enterprise Server等均支持SSI命令)。
会对shtml文件特殊招待。 先扫一次shtml文件看没有特殊的SSI指令现在。
有就按Web Server设定规则解释SSI指令。 解释完后跟一般html一起掉去客户端。

shtml
使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为"服务器端嵌入"或者叫"服务器端包含",是一种类似于ASP的基于服务器的网页制作技术。


作者: 香菇    时间: 2016-11-15 16:34





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2