shtml学习笔记 SSI 指令 语法 详细说明

一、什么是.shtml文件
提到.shtml文件就不得不提到ssi。
SSI被称为“服务器端包含”或“服务器端嵌入”技术。是一种基于服务器端的网页制作技术。.shtml文件就是应用了SSI技术的.html文件。

二、SSI工作原理
因为是基于服务器端的网页制作技术,所以在.shtml页面返回到客户端前,页面中的SSI指令将被服务器解析。可以使用SSI指令将其它文件、图片包含在页面中,也可以将其它的CGI程序包含在页面中,如.aspx文件。在给客户端返回的页面中不会包含SSI指令。如果SSI指令不能被解析,则浏览器会将其做为普通的HTML注释处理。

三、SSI的特点
速度:介于类似于.asp与.html之间。比.asp快,但比.html慢
维护:SSI能使页面在维护的时候更简单,维护的效率也更高。

四、什么时候需要使用SSI
在以下情况中,可以考虑使用SSI
  1. 显示服务器端环境变量<#echo>
  2. 将文本内容直接插入到文档中<#include>
  3. 显示WEB文档相关信息<#f lastmod #f size> (如文件制作日期/大小等)
  4. 直接执行服务器上的各种程序<#exec>(如CGI或其他可执行程序)
  5. 设置SSI信息显示格式<#config>(如文件制作日期/大小显示方式)
  6. 高级SSI<XSSI>可设置变量使用if条件语句

五、SSI指令与语法介绍

SSI包含六大指令,见下

1、config指令:用于修改SSI的默认设置

参数:errmsg, timefmt, sizefmt

errmsg:设置默认的错误信息,该指令必须入在其它指令的前面

示例:<!--#config errmsg="error!please email mamager!"-->

Timefmt:设置日期与时间的显示格式,需放在echo指令前

示例:

<!--#config timefmt="%A, %B %d, %Y"-->

<!--#echo var="last_modified"-->

Sizefmt:设置表示文件大小的单位。如bytes。该指令需要放在fsize指令前使用。

示例:

<!--#config sizefmt="bytes"-->
<!--#fsize file="head.html"-->

2、Include指令:用于将其它文档或元素包含在当前文档中

参数:virtual file

virtual:给出到服务器端某个文档的虚拟路径

示例:

<!--include virtual="/includes/header.html"-->

file:给出到当前目录的相对路径,其中不能使用"../",也不能使用绝对路径

示例:

<!--include file="header.html"-->

这就要求每一个目录中都包含一个header.html文件。

3、Echo:用于显示各种服务器变量

参数:var

示例:

<!--#echo var="DOCUMENT_NAME"-->

以下是常见的服务器变量:

DOCUMENT_NAME:显示当前文档的名称

DOCUMENT_URI:显示当前文档的虚拟路径

QUERY_STRING_UNESCAPED:显示未经转义处理的由客户端发送的查询字串,其中所有的特殊字符前面都有转义符"\

DATE_LOCAL:显示服务器设定时区的日期和时间。用户可以结合config命令的timefmt参数,定制输出信息

示例:

<!--#config timefmt="%A,the %d of %B,in the year %Y"-->
<!--#echo var="DATE_LOCAL"-->

输出结果:

Saturday, the 15 of April, in the year 2000

DATE_GMT:功能与DATE_LOCAL一样,只不过返回的是以格林尼治标准时间为基准的日期

LAST_MODIFIED:显示当前文档的最后更新时间

除了SSI环境变量之外,echo命令还可以显示以下CGI环境变量:

SERVER_SOFTWARE:显示服务器软件的名称和版本

SERVER_NAME:显示服务器的主机名称,DNS别名或IP地址

SERVER_PROTOCOL:显示客户端请求所使用的协议名称和版本,如HTTP/1.0

SERVER_PORT:显示服务器的响应端口

REQUEST_METHOD:显示客户端的文档请求方法,包括GET, HEAD, 和POST

REMOTE_HOST:显示发出请求信息的客户端主机名称

REMOTE_ADDR:显示发出请求信息的客户端IP地址

AUTH_TYPE:显示用户身份的验证方法

REMOTE_USER:显示访问受保护页面的用户所使用的帐号名称

4、Fsize显示指定文件的大小,可以结合config命令的sizefmt参数定制输出格式

参数:file

示例:

<!--#fsize file="index_working.html"-->

5、Flastmod显示指定文件的最后修改日期,可以结合config 命令的timefmt参数控制输出格式

参数:file

示例:

<!--#config timefmt="%A, the %d of %B, in the year %Y"-->
<!--#flastmod file="file.html"-->

6、Exec可以执行CGI脚本或者shell命令

参数:cmd cgi

Cmd:使用/bin/sh执行指定的字串。如果SSI使用了IncludesNOEXEC选项,则该命令将被屏蔽

Cgi:可以用来执行CGI脚本

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值