什么是SSI?
Server Side Include-- SSI 服务器端包含指令.(服务器端嵌入)
SSI 在使用时遵循以下格式:
<!---->
其中,directive 是向服务器发送的指令名称,parameter 是指令的操作对象,而 value 则是用户希望得到的指令处理结果。
所有的 SSI 命令都是以 "<!---->"。
SSI 命令包含六大类指令以及各自的参数,具体如下:
指令及参数指令名称参数列表
Configerrmsg, timefmt, sizefmt
include virtual, file
echo ,var
fsize ,file
flast ,modfile
exec ,cmd, cgi
下面我们将逐一进行介绍。
Config 命令
Config 命令主要用于修改 SSI 的默认设置。其中:
Errmsg:设置默认错误信息。为了能够正常的返回用户设定的错误信息,在 HTML 文件中 Errmsg 参数必须被放置在其它 SSI 命令的前面,否则客户端只能显示默认的错误信息,而不是由用户设定的自定义信息。
<!---->
Timefmt:定义日期和时间的使用格式。Timefmt 参数必须在 echo 命令之前使用。
<!---->
<!---->
显示结果为:
Wednesday, April 12, 2000
也许用户对上例中所使用的 %A %B %d 感到很陌生,下面我们就以表格的形式总结一下 SSI 中较为常用的一些日期和时间格式。
Sizefmt:决定文件大小是以字节、千字节还是兆字节为单位表示。如果以字节为单位,参数值为 "bytes";对于千字节和兆字节可以使用缩写形式。同样,sizefmt 参数必须放在 fsize 命令的前面才能使用。
<!---->
<!---->
Include 命令
Include 命令可以把其它文档中的文字或图片插入到当前被解析的文档中,这是整个 SSI 的关键所在。通过 Include 命令只需要改动一个文件就可以瞬间更新整个站点!
Include 命令具有两个不同的参数:
Virtual:给出到服务器端某个文档的虚拟路径。例如:
<!---->
File:给出到当前目录的相对路径,其中不能使用 "../",也不能使用绝对路径。例如:
<!---->
这就要求每一个目录中都包含一个 header.html 文件。
Echo 命令
Echo 命令可以显示以下各环境变量:
DOCUMENT_NAME:显示当前文档的名称。
<!---->
显示结果为:
index.html
DOCUMENT_URI:显示当前文档的虚拟路径。例如:
<!---->
显示结果为:
/YourDirectory/YourFilename.html
随着网站的不断发展,那些越来越长的 URL 地址肯定会让人头疼。如果使用 SSI,一切就会迎刃而解。因为我们可以把网站的域名和 SSI 命令结合在一起显示完整的 URL,即:
http://YourDomain<!---->
QUERY_STRING_UNESCAPED:显示未经转义处理的由客户端发送的查询字串,其中所有的特殊字符前面都有转义符 "\"。例如:
<!---->
DATE_LOCAL:显示服务器设定时区的日期和时间。用户可以结合 config 命令的 timefmt 参数,定制输出信息。例如:
<!---->
<!---->
显示结果为:
Saturday, the 15 of April, in the year 2000
DATE_GMT:功能与 DATE_LOCAL 一样,只不过返回的是以格林尼治标准时间为基准的日期。例如:
<!---->
LAST_MODIFIED:显示当前文档的最后更新时间。同样,这是 SSI 中非常实用的一个功能,只要在 HTML 文档中加入以下这行简单的文字,就可以在页面上动态的显示更新时间。
<!---->
除了 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:显示访问受保护页面的用户所使用的帐号名称。
<!---->
Fsize 命令
Fsize 显示指定文件的大小,可以结合 config 命令的 sizefmt 参数定制输出格式。
<!---->
Flastmod 命令
Flastmod 显示指定文件的最后修改日期,可以结合 config 命令的 timefmt 参数控制输出格式。
<!---->
<!---->
这里,我们可以利用 flastmod 参数显示出一个页面上所有链接页面的更新日期。方法如下:
<!---->
File
<!---->
Another File
<!---->
<!---->
显示结果为:
File April 19, 2000
Another File January 08, 2000
Exec 命令
Exec 命令可以执行 CGI 脚本或者 shell 命令。使用方法如下:
Cmd:使用 /bin/sh 执行指定的字串。如果 SSI 使用了 IncludesNOEXEC 选项,则该命令将被屏蔽。
Cgi:可以用来执行 CGI 脚本。例如,下面这个例子中使用服务端 cgi-bin 目录下的 counter.pl 脚本程序在每个页面放置一个计数器:
<!---->
SSI 在使用时遵循以下格式:
<!---->
其中,directive 是向服务器发送的指令名称,parameter 是指令的操作对象,而 value 则是用户希望得到的指令处理结果。
所有的 SSI 命令都是以 "<!---->"。
SSI 命令包含六大类指令以及各自的参数,具体如下:
指令及参数指令名称参数列表
Configerrmsg, timefmt, sizefmt
includevirtual, file
echovar
fsizefile
flastmodfile
execcmd, cgi
下面我们将逐一进行介绍。
Config 命令
Config 命令主要用于修改 SSI 的默认设置。其中:
Errmsg:设置默认错误信息。为了能够正常的返回用户设定的错误信息,在 HTML 文件中 Errmsg 参数必须被放置在其它 SSI 命令的前面,否则客户端只能显示默认的错误信息,而不是由用户设定的自定义信息。
<!---->
Timefmt:定义日期和时间的使用格式。Timefmt 参数必须在 echo 命令之前使用。
<!---->
<!---->
显示结果为:
Wednesday, April 12, 2000
也许用户对上例中所使用的 %A %B %d 感到很陌生,下面我们就以表格的形式总结一下 SSI 中较为常用的一些日期和时间格式。
Sizefmt:决定文件大小是以字节、千字节还是兆字节为单位表示。如果以字节为单位,参数值为 "bytes";对于千字节和兆字节可以使用缩写形式。同样,sizefmt 参数必须放在 fsize 命令的前面才能使用。
<!---->
<!---->
Include 命令
Include 命令可以把其它文档中的文字或图片插入到当前被解析的文档中,这是整个 SSI 的关键所在。通过 Include 命令只需要改动一个文件就可以瞬间更新整个站点!
Include 命令具有两个不同的参数:
Virtual:给出到服务器端某个文档的虚拟路径。例如:
<!---->
File:给出到当前目录的相对路径,其中不能使用 "../",也不能使用绝对路径。例如:
<!---->
这就要求每一个目录中都包含一个 header.html 文件。
Echo 命令
Echo 命令可以显示以下各环境变量:
DOCUMENT_NAME:显示当前文档的名称。
<!---->
显示结果为:
index.html
DOCUMENT_URI:显示当前文档的虚拟路径。例如:
<!---->
显示结果为:
/YourDirectory/YourFilename.html
随着网站的不断发展,那些越来越长的 URL 地址肯定会让人头疼。如果使用 SSI,一切就会迎刃而解。因为我们可以把网站的域名和 SSI 命令结合在一起显示完整的 URL,即:
http://YourDomain<!---->
QUERY_STRING_UNESCAPED:显示未经转义处理的由客户端发送的查询字串,其中所有的特殊字符前面都有转义符 "\"。例如:
<!---->
DATE_LOCAL:显示服务器设定时区的日期和时间。用户可以结合 config 命令的 timefmt 参数,定制输出信息。例如:
<!---->
<!---->
显示结果为:
Saturday, the 15 of April, in the year 2000
DATE_GMT:功能与 DATE_LOCAL 一样,只不过返回的是以格林尼治标准时间为基准的日期。例如:
<!---->
LAST_MODIFIED:显示当前文档的最后更新时间。同样,这是 SSI 中非常实用的一个功能,只要在 HTML 文档中加入以下这行简单的文字,就可以在页面上动态的显示更新时间。
<!---->
除了 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:显示访问受保护页面的用户所使用的帐号名称。
<!---->
Fsize 命令
Fsize 显示指定文件的大小,可以结合 config 命令的 sizefmt 参数定制输出格式。
<!---->
Flastmod 命令
Flastmod 显示指定文件的最后修改日期,可以结合 config 命令的 timefmt 参数控制输出格式。
<!---->
<!---->
这里,我们可以利用 flastmod 参数显示出一个页面上所有链接页面的更新日期。方法如下:
<!---->
File
<!---->
Another File
<!---->
<!---->
显示结果为:
File April 19, 2000
Another File January 08, 2000
Exec 命令
Exec 命令可以执行 CGI 脚本或者 shell 命令。使用方法如下:
Cmd:使用 /bin/sh 执行指定的字串。如果 SSI 使用了 IncludesNOEXEC 选项,则该命令将被屏蔽。
Cgi:可以用来执行 CGI 脚本。例如,下面这个例子中使用服务端 cgi-bin 目录下的 counter.pl 脚本程序在每个页面放置一个计数器:
<!---->
本文转自建站学 http://www.jzxue.com
分享到:
相关推荐
而Nginx中通过SSI指令配置可以灵活控制SSI支持,实现对动态内容的高效管理。需要注意的是,由于SSI是在服务器端处理的,因此对服务器性能有一定要求,且不应当用于处理安全性要求较高的内容,因为可能会增加XSS(跨...
1. **SSI指令**:SSI指令以`<!--#`开头,`-->`结尾,比如`<!--#include virtual="header.html" -->`用于包含一个文件,`<!--#config timefmt="%Y-%m-%d" -->`用于设置日期格式。这些指令在服务器端被解析,然后替换...
1. **SSI指令的使用**:学习和掌握各种SSI指令,如`include`、`config`、`exec`等,以及它们的参数和用法。 2. **模板引擎集成**:可能需要将SSI与模板引擎(如Jinja2、Twig等)结合,以增强模板的表达能力,实现更...
--#include virtual="filename"-->`:这可能是最常用的SSI指令,用于包含服务器上的文件。`virtual`参数指定要包含的文件的URL路径。 2. `<!--#include file="filename"-->`:与上一个类似,但这里的`file`参数指定...
4. **测试和调试**:通过浏览器访问页面,检查SSI指令是否正确执行,使用服务器日志帮助定位和解决问题。 5. **性能监控**:关注SSI处理对服务器性能的影响,如有必要,可以调整缓存策略或优化代码。 需要注意的是...
在这个案例中,"example"文件可能是包含一系列SSI指令的示例页面。这些指令可能包括: 1. `<!--#include virtual="file.html" -->`:这行代码会将指定路径的"file.html"文件内容插入到当前页面中。`virtual`参数...
在Apache中,你需要在配置文件httpd.conf中启用ssi模块,并在相应目录下设置AllowOverride为All,以便允许SSI指令在HTML文件中生效。对于Nginx,你需要在server block中添加ssi on;指令来开启SSI支持。 接下来,...
该压缩包文件"ssi.zip_ssi spi"很可能包含了关于如何在 LM3S9B96 上配置和使用 SSI 协议的源代码及相关文档。 SPI 协议是一种同步串行通信协议,由主机(Master)控制时钟,并与一个或多个从机(Slave)进行数据...
1. **SSI语法**:了解基本的SSI指令,如`<!--#include virtual="..." -->`用于包含其他文件,`<!--#config timefmt="..." -->`用于设置时间格式,以及`<!--#exec cmd="..." -->`执行服务器端命令等。 2. **文件包含...
4. **测试与调试**:访问包含SSI指令的页面,查看服务器是否正确处理并插入了内容。 ### SSI的优势与局限性 **优势**: - **简单易用**:SSI语法简单,适合快速实现简单的动态效果。 - **节省带宽**:通过包含文件...
在进行SSI整合时,你需要确保所有引用的文件路径正确无误,并且服务器已经正确配置以解析SSI指令。如果遇到问题,查看服务器日志通常能提供有价值的线索,如权限错误、文件不存在等问题。 为了更深入地理解和实践这...
常见的SSI指令有`<!--#include virtual=... -->`,用于包含其他文件,以及`<!--#config timefmt=... -->`,用于设置日期和时间的格式。通过这种方式,开发者可以轻松地管理网站的头部、底部等公共部分,提高代码复用...
WEB_SSI_CGI是指服务器端嵌入式简单指令(SSI,Server-Side Includes)和通用网关接口(CGI,Common Gateway Interface)技术的结合。SSI允许在HTML页面中嵌入可执行的服务器端脚本,比如时间戳、动态内容生成等。...
3. **测试**:创建一个简单的HTML文件,包含一个SSI指令,如`<!--#include virtual="/test.txt"-->`,然后在浏览器中访问,如果配置正确,服务器会插入`test.txt`的内容。 **文件列表分析:** 1. **tomcat-ssi.txt*...
2. **效率**:相比JSP等更复杂的服务器端技术,解释SSI指令的效率更高。因为SSI功能相对简单,不像Servlet那样需要处理众多的功能,所以性能更优。对于大型高流量的门户网站,这尤其重要,比如阿里巴巴集团旗下的...
5. 实现SSI解析逻辑,找到HTML中的SSI指令并替换为动态内容。 6. 测试Web服务器,通过浏览器访问验证功能是否正常工作。 提供的"STM32+LWIP+WEB_SSI_CGI"压缩包很可能包含了实现这些功能的源代码、配置文件以及必要...
这通常涉及到HTML表单的创建,用于收集用户输入,然后通过SSI指令与服务器端的脚本交互,执行相应的数据库操作。例如,创建新记录可能需要一个表单提交,服务器端脚本接收到数据后插入数据库;查询操作则可能是通过...
1. SSI指令:如`<!--#include file="filename"-->`用于包含其他文件,`<!--#config timefmt="%Y-%m-%d %H:%M:%S"-->`设置时间格式等。 2. 条件语句:允许根据特定条件执行不同代码块,如`<!--#if expr="$var = value...
在HTML文件中,我们可以使用以下SSI指令来包含其他文件或显示服务器变量: 1. `<!--#include virtual="path/to/file" -->`:这将包含指定路径的文件内容。 2. `<!--#echo var="DATE_LOCAL" -->`:显示服务器的本地...
- 创建`index.shtml`作为主页面,并使用SSI指令引入头部和尾部文件: ```html <!--#include file="head.html"--> 主页面内容 <!--#include virtual="foot.html"--> ``` ##### 2. SSI支持的变量 SSI支持一...