拒绝 HTTP 请求

如果 CICS® 系统中的应用程序或资源暂时不可用,并且无法通过重定向提供覆盖,或者如果应用程序或资源已被永久移除,那么可以拒绝多个不同级别的 HTTP 请求。 如果 CICS 区域可能因来自 Web 客户机的长期持续连接而超负荷,那么还可以实施连接调速。

关于此任务

您可以在这些级别拒绝 HTTP 请求:
  • 在特定请求 URL 级别。 要达到该详细程度级别,URIMAP 定义要包含请求 URL。 如果您没有 URIMAP 定义,那么可通过更改处理 HTTP 请求的分析器程序来修改这些请求的处理,但该技术不太方便。
  • 在虚拟主机级别(包含特定主机名的所有请求)。 对于被合并到虚拟主机中的请求,它必须包含在 URIMAP 定义中。
  • 在端口级别。 端口映射到 TCPIPSERVICE 定义。 例如,对缺省 HTTP 端口 80 禁用 TCPIPSERVICE 定义会阻止 CICS 接收任何 HTTP 请求 (使用 SSL 或非标准端口的请求除外)。
  • 完全在所有端口级别。 在 CEMT 事务或 CICSPlex ® SM 中,可以关闭 CICS 内部 TCP/IP 套接字支持,从而完全关闭 CICS Web Support。

通常,如果在更精细的级别拒绝 HTTP 请求,那么 CICS 可以向 Web 客户机提供更有用的错误响应。 例如,如果通过禁用 URIMAP 定义或虚拟主机来拒绝 HTTP 请求,那么 CICS 将通过 Web 错误程序向 Web 客户机返回 HTTP 503 响应 (服务不可用)。 您可以定制 Web 错误程序来修改该响应。 然而,如果您通过禁用 TCPIPSERVICE 定义来拒绝 HTTP 请求,那么 Web 客户机将只收到表明服务器错误的常规错误响应。

如果您的 CICS 区域迂到性能问题,因为过多的 Web 客户机设置了长时间存在的持久连接,那么可以实施连接调速以控制这些请求。 连接调速会自动限制单个 CICS 区域为特定端口接受的持久 HTTP 连接数,因此您不必手动干预。 Web 客户机可以通过重新连接到另一个共享端口并提供相同服务的 CICS 区域来获取持久连接。

执行连接调速时,超出设定限制的 Web 客户机需在每次响应后关闭其连接。 HTTP/1.1 服务器通常应允许持续连接,因此仅当需要为迂到性能问题的 CICS 区域提供自动干预时,才应设置连接调速。 CICS Web Support 如何处理持续连接 说明了连接调速的影响。

您可以如下方式拒绝或调速 HTTP 请求:

过程

  • 要拒绝到特定请求 URL 的请求:
    1. 如果您有 URL 的 URIMAP 定义,请禁用 URIMAP 定义。
      检查请求 URL 是否与路径中有通配符的不特定 URIMAP 定义不匹配。
      CICS 通过 Web 错误程序向 Web 客户机返回 HTTP 503 响应 (服务不可用)。 您可以通过更改 Web 错误程序来定制该响应。
    2. 如果您没有 URL 的 URIMAP 定义,那么可拒绝请求,方法是更改与发出请求的端口的 TCPIPSERVICE 定义关联的分析器程序。
      您可能希望对分析器程序进行编码以为每个 URL 提供各自的拒绝消息,或可能更喜欢提供涵盖任何不可用的 URL 的一条消息。
      分析器程序 告诉您哪些操作适用于处理被拒绝的请求。
  • 要拒绝对虚拟主机的请求 (即,对特定主机名的所有请求) ,请使用 SET HOST 命令禁用虚拟主机,如 管理虚拟主机中所述。
    CICS 通过 Web 错误程序向 Web 客户机返回 HTTP 503 响应 (服务不可用)。 您可以通过更改 Web 错误程序来定制该响应。
  • 要限制特定端口上与 CICS 区域的持续连接数,请在设置 TCPIPSERVICE 定义时指定 MAXPERSIST 属性的值。
    如果达到您的限制,将执行连接调速。 CICS 将 "连接: 关闭头" 响应发送到在端口上连接的其他 Web 客户机,并且这些客户机在接收响应后必须关闭连接。 请注意,这些新 Web 客户机的性能可能会受到连接调速的影响,尤其是在它们重新连接到同一 CICS 区域时。 当这些 Web 客户机连接到另一个共享该端口且未达到其限制的 CICS 区域时,它们可以改为在该区域中维护持久连接。 已与 CICS 区域建立持久连接的 Web 客户机可以维护其持久连接。
    当具有持久连接的 Web 客户机关闭其连接时, CICS 区域将开始再次接受新的持久连接。
  • 要拒绝特定端口上的所有请求,请在 CEMT 或 CICSPlex SM 中使用 SET TCPIPSERVICE 命令禁用 TCPIPSERVICE 定义。
    您可以选择停止侦听端口的方式:正常 - 允许活动的任务完成;立即 - 异常结束活动的任务。
  • 要拒绝所有入站和出站请求并完全停止 CICS Web Support ,请在 CEMT 或 CPSM 中使用 SET TCPIP 命令来关闭 TCP/IP。
    您可以选择正常关闭 - 允许活动任务完成,或立即关闭 - 异常结束活动任务。