- SSI被称为“服务器端包含”或“服务器端嵌入”技术。是一种基于服务器端的网页制作技术。
- shtml文件就是应用了SSI技术的html文件
- SSI工作原理因为是基于服务器端的网页制作技术,所以在.shtml页面返回到客户端前,页面中的SSI指令将被服务器解析。可以使用SSI指令将其它文件、图片包含在页面中,也可以将其它的CGI程序包含在页面中,如.aspx文件。在给客户端返回的页面中不会包含SSI指令。如果SSI指令不能被解析,则浏览器会将其做为普通的HTML注释处理。
- SSI的特点速度:介于类似于.asp与.html之间。比.asp快,但比.html慢维护:SSI能使页面在维护的时候更简单,维护的效率也更高。
显示服务器端环境变量<#echo>
将文本内容直接插入到文档中<#include>
显示WEB文档相关信息<#f lastmod #f size> (如文件制作日期/大小等)
直接执行服务器上的各种程序<#exec>(如CGI或其他可执行程序)
设置SSI信息显示格式<#config>(如文件制作日期/大小显示方式)
高级SSI<XSSI>可设置变量使用if条件语句
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脚本
分享到:
相关推荐
6. **错误处理**:学习如何调试和处理SSI相关的错误,例如文件找不到、指令语法错误等。 7. **与Java框架集成**:如果你正在使用Spring、Struts或其他Java Web框架,了解如何将SSI整合进这些框架的视图层。 8. **...
这些文档包含了所有可用的SSI指令、变量以及如何使用它们的实例。通过了解和熟练使用SSI,你可以创建更加动态和灵活的网页,同时降低维护成本。 例如,你可以使用`<!--#include virtual="ssi/footer.ssi" -->`指令...
SSI注入,即SSI Injection,是指攻击者通过输入恶意的SSI指令到应用程序中,来利用服务器的SSI功能,获取敏感信息或执行非法操作。这种漏洞常见于用户可控的数据被直接插入到包含SSI指令的页面中,例如评论、表单...
1. **SSI基本语法**:了解如何在HTML文件中插入SSI指令,例如`<!--#include virtual="file.html" -->`用于引入其他文件,`<!--#echo var="DATE_LOCAL" -->`用于显示服务器的当前日期和时间。 2. **SSI指令**:学习...
--#include virtual="filename"-->`:这可能是最常用的SSI指令,用于包含服务器上的文件。`virtual`参数指定要包含的文件的URL路径。 2. `<!--#include file="filename"-->`:与上一个类似,但这里的`file`参数指定...
下面,我们将详细探讨SSI的核心概念、基本语法以及在数据库交互中的应用。 1. SSI核心概念: SSI主要用于在HTML页面中嵌入服务器端的命令或脚本,使得静态网页也能实现一定的动态效果。它不需要专门的服务器端编程...
解决这些问题可能需要深入理解Java虚拟机的工作原理、Web服务器的配置以及SSI指令的语法。 在实际应用中,这样的整合可以提高开发效率,因为开发者可以在不改变整个页面结构的情况下,通过SSI指令轻松地添加或更新...
不过,可以想象学习路径可能包括理解SSI的基本语法和配置,了解如何在HTML文件中插入SSI指令,熟悉SWT的基本组件和布局管理,以及如何用SWT创建一个能够处理SSI的Java应用。这些知识对于Web开发者和Java程序员来说都...
在登录功能中,可能会用到的SSI指令有: 1. `<!--#include file="filename.ext" -->`:包含本地文件,这里的`filename.ext`是相对当前文档的路径。 2. `<!--#exec cmd="command" -->`:执行服务器上的命令,并显示...
SSI的基本语法主要包括以下几点: 1. `<!--#include file="filename"-->`:这是最常用的指令,用于将指定的文件内容插入到当前HTML文档中。"filename"是相对当前SSI文件的路径。 2. `<!--#config timefmt="%Y-%m-%...
--#set var="myVar" value="value"`创建自定义变量,并在后续的ssi指令中引用。 8. **错误处理** 可以通过`<!--#error`指令处理SSI错误,比如当包含的文件不存在时,可以设置一个默认的错误提示页面。 9. **性能...
1. **SSI指令**:SSI主要通过特定的指令来实现其功能,如`<!--#include file="filename" -->`用于插入文件,`<!--#config timefmt="%Y-%m-%d %H:%M:%S" -->`用于设置日期时间格式,以及`<!--#exec cmd="command" -->...
在"SSI.rar 代码库"中,可能包含了各种SSI指令的示例文件,比如包含不同类型的文件、根据条件显示内容、动态输出时间等。这些例子有助于学习者理解如何在实际场景中应用SSI,提升网页动态化的能力。 学习和使用SSI...
常见的SSI指令包括: 1. `<!--#include file="filename" -->`:用于包含其他文件,如头文件、脚本或导航栏。 2. `<!--#config timefmt="%Y-%m-%d %H:%M:%S" -->`:配置日期和时间的格式。 3. `<!--#echo var="DATE_...
例如,我们可以创建一个 VelocityContext 对象,将SSI所需的变量添加进去,然后通过Velocity的`Template`对象和`VelocityEngine`来处理包含SSI指令的文件。在处理过程中,自定义的工具会捕获到SSI指令,并用Velocity...
常见的SSI指令包括`<!--#include>`用于引入其他文件,`<!--#config timefmt=`来设置时间格式,以及`<!--#exec`执行服务器上的脚本等。 在这个"ssi框架demo"中,可能包含了以下知识点: 1. **SSI基本语法**:项目...
4. **测试与调试**:访问包含SSI指令的页面,查看服务器是否正确处理并插入了内容。 ### SSI的优势与局限性 **优势**: - **简单易用**:SSI语法简单,适合快速实现简单的动态效果。 - **节省带宽**:通过包含文件...
在Apache中,你需要在配置文件httpd.conf中启用ssi模块,并在相应目录下设置AllowOverride为All,以便允许SSI指令在HTML文件中生效。对于Nginx,你需要在server block中添加ssi on;指令来开启SSI支持。 接下来,...
1. **SSI语法**:了解基本的SSI指令,如`<!--#include virtual="..." -->`用于包含其他文件,`<!--#config timefmt="..." -->`用于设置时间格式,以及`<!--#exec cmd="..." -->`执行服务器端命令等。 2. **文件包含...
在进行SSI整合时,你需要确保所有引用的文件路径正确无误,并且服务器已经正确配置以解析SSI指令。如果遇到问题,查看服务器日志通常能提供有价值的线索,如权限错误、文件不存在等问题。 为了更深入地理解和实践这...