用 CICS 文档模板或 z/OS UNIX 文件提供静态 HTTP 响应

您可以使用 CICS或 z/OS UNIX System Services文件,对来自Web客户端HTTP提供静态响应。

开始之前

配置 CICS Web Support 的基本组件,如 配置 CICS Web Support 组件中所述。

关于此任务

该任务涉及 CICS Web Support 的以下组件,并包括一些子任务。

  • TCPIPSERVICE 资源定义
  • URIMAP 资源定义
  • z/OS UNIX 文件
  • CICS 文档模板支持
  • 安全设施
  • Web 错误程序
图 1 显示此 CICS Web Support 任务的体系结构元素。 CICS HTTP处理 HTTP和响应 》一文解释了流程元素如何协同工作。
图 1。 静态 HTTP 响应
静态 HTTP 响应。 所使用的元素在图后的文本中进行了说明。 图前链接的主题说明了它们如何协同工作。

当您使用 z/OS UNIX 文件向 Web 客户端请求提供静态响应时,接收这些请求并提供响应的 CICS 区域需要对这些文件及其目录具有读取权限。 如果将每个 CICS 区域的所有相关文件都存储在该 CICS 区域的主目录的子目录结构中,那么可以使该 CICS 区域成为各个目录和文件的所有者(具有合适的所有者权限)。 若某些 z/OS UNIX 文件被多个 CICS 区域使用,请使用组权限或访问控制列表(ACL)。 在生产环境中,使用其他权限(这些权限可让所有 z/OS UNIX 用户访问)可能不适合 CICS 的网站支持。

过程

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