您可以使用 CICS或 z/OS UNIX System Services文件,对来自Web客户端HTTP提供静态响应。
关于此任务
该任务涉及 CICS Web Support 的以下组件,并包括一些子任务。
- TCPIPSERVICE 资源定义
- URIMAP 资源定义
- z/OS UNIX 文件
- CICS 文档模板支持
- 安全设施
- Web 错误程序
当您使用 z/OS UNIX 文件向 Web 客户端请求提供静态响应时,接收这些请求并提供响应的 CICS 区域需要对这些文件及其目录具有读取权限。 如果将每个 CICS 区域的所有相关文件都存储在该 CICS 区域的主目录的子目录结构中,那么可以使该 CICS 区域成为各个目录和文件的所有者(具有合适的所有者权限)。 若某些 z/OS UNIX 文件被多个 CICS 区域使用,请使用组权限或访问控制列表(ACL)。 在生产环境中,使用其他
权限(这些权限可让所有 z/OS UNIX 用户访问)可能不适合 CICS 的网站支持。
过程
- 请考虑此 CICS® Web Support 任务的安全性问题。
CICS 可以为连接实施 HTTP 基本认证,用户必须提供ID和密码。
对于应用程序生成的响应或静态响应所用的各项资源,您可以使用该用户标识来控制对这些资源的访问。 如果您需要保护在因特网上传递的信息(包括用于基本认证的用户标识和密码),请考虑使用安全套接字层 (SSL)。
更多信息,请参阅 CICS 网络支持的安全。
- 若需使用 z/OS UNIX System Services 文件提供响应,请创建该文件并将其放置于 z/OS UNIX 文件系统中的适当位置。
当此响应由与 Web 客户机请求匹配的 URIMAP 定义标识时, CICS 将检索文件并执行相应的代码页转换。 请注意这几点:
- 请勿在 z/OS UNIX 文件中包含任何 HTTP 头信息或状态行信息。
CICS 在发送响应时生成必需的信息。 z/OS UNIX 文件仅提供响应主体。
- 如果要使用路径匹配,那么文件位置很重要,如本任务中稍后所述。 如果不想使用路径匹配,那么文件位置不需要与请求的 URL 有任何关系。
- CICS 区域必须拥有访问 z/OS UNIX 的权限,并且必须拥有访问包含该文件的目录及文件本身的权限。
- 如果正在使用 Web 客户机的用户标识执行访问控制,这些用户标识还必须有权访问包含该文件的目录以及该文件本身。
- 如果要使用 CICS 文档模板来提供响应,请遵循 创建文档中的指示信息来创建文档模板。
文档模板是使用 DOCTEMPLATE 资源定义来定义的。 文档模板可以保存在分区数据集, CICS 程序,文件,临时存储器队列,瞬时数据队列,出口程序或 z/OS UNIX System Services 文件中。
当此响应由与 Web 客户机请求匹配的 URIMAP 定义标识时, CICS 将使用模板创建文档,检索文档并执行相应的代码页转换。
- 不要在文档模板中包含任何 HTTP 头或状态行信息。
CICS 在发送响应时生成必需的信息。 文档模板只提供响应主体。
- 组成名称值对的查询字符串可用作符号列表并替换成文档模板。
(如果查询字符串已用于 URIMAP 匹配,作为 URIMAP 定义的 PATH 属性的一部分,那么不能这样使用它。)
要使客户机发送 URL 中期望格式的查询字符串,请发送具有 GET 方法的 HTML 表单以供用户指定。
查询字符串中的任何名称都可以在文档模板中编码为符号,并且在使用模板时, CICS 会将每个符号替换为查询字符串中指定的值。 例如,如果已获取包括名称和值对
username=Peter 的查询字符串,那么可以通过将
username 编码为符号以在文档模板中使用该查询字符串:
Welcome to the finance system, &username;.
传递给用户的结果静态响应将读取:
Welcome to the finance system, Peter.
注: 文档模板中的符号区分大小写。 将名称的大小写指定为与原始查询字符串中的大小写一样。
与文档模板中的符号不符合的任何名称和值对都会被忽略。
- 如果正在使用 Web 客户机的用户标识实施资源级安全性,那么这些用户标识必须有权访问文档模板。
- 识别由文件模板 z/OS UNIX 或 CICS 提供的媒体类型(数据内容类型)。
请注意,使用 URIMAP 定义发送静态响应时,不支持使用质量指标(“q”参数)。 使用质量指标在客户机可接受介质类型或字符集列表中选择,如 Accept 头中所指定。 要执行这种类型的分析,可以代之以使用应用程序生成的响应。
- 标识 CICS 在静态响应的代码页转换中所需的信息。
- 标识 CICS 在将静态响应发送到 Web 客户机之前将其转换为的字符集。
- 确定响应主体文档模板或 z/OS UNIX 文件所采用的 IBM 代码页(EBCDIC)编码格式。
对于静态响应,该信息在请求的 URIMAP 定义中指定。
- 确定网络客户端每次请求使用的 URL ,包括协议、主机和路径组件以及任何查询字符串。
- 若要在URIMAP定义中使用路径匹配功能,请规划请求URL,并相应地安排 CICS 文档模板的名称或 z/OS UNIX 文件的位置以支持该功能。
在路径匹配中,通配符字符既用于URIMAP定义的路径组件,也用于URIMAP定义所指定的 CICS 文档模板或 z/OS UNIX 文件的名称。 路径中由通配符字符覆盖的部分用于选择文档模板或 z/OS UNIX 文件以提供响应。
- 对于 CICS 文档模板,通配符覆盖的路径部分将替换为模板名称的最后一部分。 您可以创建名称以相同方式开头的文档模板集合,并通过单个 URIMAP 定义,使用路径以相同方式开头的请求 URL 来访问它们。
- 对于 z/OS UNIX 文件,路径中由通配符字符覆盖的部分将被替换为文件名的最后一部分。 您可以将其中一些文件存储在同一目录中,并通过单个 URIMAP 定义,使用路径开始部分相同的请求 URL 来访问它们。
请注意,由于URIMAP定义必须指定数据内容类型(即MEDIATYPE属性),因此单个URIMAP定义只能处理生成相同类型数据内容的 z/OS UNIX 文件组。
- 决定将用于请求的端口,请参阅
对于 HTTP,缺省端口号是 80,而对于 HTTPS(具有 SSL),缺省端口号是 443。 在请求的 URL 中明确指定不是方案的缺省值的端口号。
如果您愿意,可以允许请求使用与 CICS Web Support 关联的任何端口。
- 如果还没有针对接收请求的端口的 TCPIPSERVICE 定义, 请遵循 为 CICS Web Support 创建 TCPIPSERVICE 资源定义中的过程。
使用该定义来为端口指定安全性措施(如,使用 SSL 和基本认证)。
相关 TCPIPSERVICE 定义的名称在请求的 URIMAP 定义中指定。 不指定 TCPIPSERVICE 定义意味着 URIMAP 定义匹配的请求可以使用存在 TCPIPSERVICE 定义的任何端口。
- 设置 URIMAP 定义以处理每个请求。 按照为 CICS 创建 URIMAP 资源作为 HTTP 服务器中的过程进行操作。
URIMAP定义可识别 z/OS UNIX 文件或文档模板。
- 检查此 CICS Web Support 任务的错误处理过程。
- 检查与 TCPIPSERVICE 定义关联的分析器程序行为,以了解在哪个端口上接收请求。 如果为请求的 URIMAP 匹配失败,那么请求被传递到分析器程序。
如果该端口只用于静态响应,那么 CICS 提供的缺省分析器程序 DFHWBAAX 将提供合适的错误处理。 另外,分析器程序的选择可能取决于用户应用程序的需求,并且您可能需要定制它以为静态响应提供合适的错误处理。 请参阅
分析器程序。
- 确保您体系结构中包括的用户可替换 Web 错误程序向 Web 客户机提供适当的响应。