检查 HTTP 请求的请求行

CICS® 存储用于每个 HTTP 请求的请求行,供应用程序访问 (如果需要)。 应用程序可以使用 WEB EXTRACT 命令抽取请求 URL 的组成部分(包括路径、主机名、端口号和查询字符串)、用于请求的方法或请求的 HTTP 版本。 非 HTTP 请求也可以用这种方式识别。

关于此任务

有关请求行中的项的信息,请参阅 HTTP 协议 。 请求 URL 是请求行的主要元素。 URL 的组件 说明了 URL 的不同部分。 您的应用程序可能会检查请求行中的任何项,以便处理请求并提供适当的响应。 下面是一些从请求行抽取信息的常见原因:
  • 为了确保调用同一应用程序来处理大量不同的请求,可能作为逻辑请求序列的一部分,或作为与同一资源相关的不同请求。
  • 查看 HTTP 方法从应用程序请求的操作。 CICS Web Support 的 HTTP 方法参考 说明了 Web 客户机可用于请求的不同方法,并建议了适用于每种情况的操作。
  • 为了使用 URL 的路径部分,其标识应用请求的资源。 除了用于将请求映射到处理应用程序,您可以设计 URL 的路径部分来为应用程序提供处理信息。 例如,路径部分可以指定由应用程序提供的特定功能。 或者,如果 Web 感知应用程序为其他多个应用程序提供前端,那么 URL 的路径部分可以识别请求所应用到的应用程序。 用于 CICS Web Support 的 URL 说明如何实现此目的。
  • 获取供应用程序处理的查询字符串。
  • 识别 Web 客户机的 HTTP 版本,以便应用程序可以提供适当的响应。 Web 客户机使用的 HTTP 版本会影响响应的 HTTP 头、状态码和消息内容。 HTTP/1.0 客户机可能不会处理 HTTP/1.1 规范中所描述的更高级的功能。
  • 识别非 HTTP 请求。 CICS Web Support 和非 HTTP 请求 具有有关处理非 HTTP 请求的更多信息。
请参阅有关选项的 WEB EXTRACT 完整参考信息。 使用 WEB EXTRACT 命令获取以下项:

过程

  • 使用 HOST 选项获取请求 URL 的主机部分,如请求的 Host 头字段或请求行(如果绝对 URI 格式用于请求)中所指定。
  • 使用 HTTPMETHOD 选项获取请求的 HTTP 方法,如 GET 或 PUT。
  • 使用 HTTPVERSION 选项以识别 HTTP 版本(HTTP/1.1 或 HTTP/1.0)。
  • 使用 PATH 选项以获取 URL 的路径部分。
  • 使用 PORTNUMBER 选项以获取应用到 URL 的端口号。
    URL 中通常会省略服务的熟知端口号。 如果 URL 中不存在该端口号,那么 WEB EXTRACT 命令将根据方案识别并将它返回。 对于 HTTP,熟知端口号为 80;对于 HTTPS,熟知端口号为 443。
  • 使用 QUERYSTRING 选项以获取整个查询字符串。
    查询字符串以其转义形式返回,其使用 %xx 序列表示特定字符,这些字符可能会妨碍正确的语法分析。 请参阅 保留和排除的字符 以获取说明。
    或者,如果查询字符串包括作为名称和值对的表单数据(例如 account=40138025),那么可以使用 WEB READ FORMFIELD 命令获取非转义形式的该数据。 检查 HTTP 请求中的表单数据 指示如何使用该命令。
  • 使用 REQUESTYPE 选项以识别非 HTTP 请求。