大多数 robot 应用函数 (Robot Application Function, RAF) 需要信息源,并会生成传至目标的数据。源在 robot 内进行定义,并且不必与 robot 最终生成的资源描述中的字段相关。另一方面,目标通常是指资源描述中的字段名(如资源描述服务器的模式所定义)。
以下各节介绍了过滤流程的不同阶段,以及这些阶段的可用源:
在“安装”阶段,过滤器在进行安装但无法获得关于资源的 URL 或内容的信息。
在“元数据”阶段,robot 会遇到资源的 URL,但它还没有下载资源的内容。这样,关于 URL 以及源自其他源(例如 filter.conf 文件)的数据的信息均可用。不过,在此阶段,关于资源内容的信息不可用。
表 19–2 元数据阶段 RAF 的可用源
资源 |
描述 |
示例 |
---|---|---|
csid |
目录服务器 ID |
x-catalog//budgie.siroe.com:8086/alexandria |
depth |
从起始点开始遍历的链接数 |
10 |
enumeration filter |
枚举过滤器的名称 |
enumeration1 |
generation filter |
生成过滤器的名称 |
generation1 |
host |
URL 的主机部分 |
home.siroe.com |
IP |
主机的数字形式 |
198.95.249.6 |
协议 |
URL 的访问部分 |
http, https, ftp, file |
path |
URL 的路径部分 |
/, /index.html, /documents/listing.html |
URL |
完整的 URL |
http://developer.siroe.com/docs/manuals/ |
在“数据”阶段,robot 已经下载 URL 处资源的内容,并且可以访问关于该内容的数据,例如描述和作者。
如果资源为 HTML 文件,Robot 会分析 HTML 标头中的 <META> 标记。因此,在“数据”阶段可获得 <META> 标记内包含的任意数据。
在“数据”阶段,除了“元数据”阶段的可用源之外,以下源对 RAF 可用。
表 19–3 数据阶段 RAF 的可用源
资源 |
描述 |
示例 |
---|---|---|
content-charset |
资源所使用的字符集 | |
content-encoding |
任意的编码形式 | |
content-length |
资源的长度(字节) | |
content-type |
资源的 MIME 类型 |
text/html, image/jpeg |
expires |
资源到期的日期 | |
last-modified |
上次修改资源的日期 | |
<META> 标记中的数据 |
HTML 资源标头中的 <META> 标记内提供的任何数据 |
作者、描述、关键字 |
检索资源时,会返回所有源自 HTTP 响应报头的源(<META> 标记中的数据除外)。
在“枚举”阶段和“生成”阶段,可用数据源与“数据”阶段的可用数据源相同。有关详细信息,参见表 19–3。
在“停止运行”阶段,过滤器完成过滤过程并停止运行。虽然为此阶段编写的函数可使用与“数据”阶段相同的可用数据源,但是停止运行的函数通常会将其操作限制为停止运行 robot 和清除活动。
每个函数都可以有一个 enable 属性。值可以是 true、false、on 或 off。管理控制台使用这些参数启用或禁用某些指令。
以下示例为 text/html 启用枚举,对 text/plain 禁用枚举:
# 仅在 HTML 上执行枚举 Enumerate enable=true fn=enumerate-urls max=1024 type=text/html Enumerate enable=false fn=enumerate-urls-from-text max=1024 type=text/plain |
添加 enable=false 属性或 enable=off 属性与注释掉该行具有相同的效果。使用这些属性是由于管理控制台不编写注释。