CICS Web Support 的 HTTP 方法参考

HTTP 请求包含方法,它是个关键字,说明了客户机希望服务器对请求中包含的资料执行的操 作。 CICS® 网络支持实现了 HTTP/1.1定义的所有标准请求方法,以及早期 CICS中接受的一些附加方法。

要获取对方法的正确使用和对它们的正确响应操作的详细指导,并且要获取有关可应用需求的信息,请总是查询您正在遵从的 HTTP 规范。
  • 对于 HTTP/1.1 网络客户端(当 CICS 是 HTTP时)的请求, HTTP/1.1定义的标准方法将被接受。 这些方法包括 GET , HEAD , PATCH , POST , PUT , OPTIONS 和 DELETE。
  • 对于 HTTP/1.0 网络客户端和更早版本(当 CICS 是 HTTP时)的请求, HTTP/1.0定义的方法和一些附加方法是可以接受的:
    • 由 HTTP/1.0 规范定义的方法是 GET、HEAD 和 POST。
    • 对 CICS 入站的 HTTP/1.0 请求接受的其他方法包括 PUT , DELETE , LINK , UNLINK 和 REQUEUE。
  • 对于 CICS 作为 HTTP提出的请求:
    • 可以使用 HTTP/1.1 规范定义的标准方法。 这些方法包括 GET , HEAD , PATCH , POST , PUT , OPTIONS 和 DELETE。
    • LINK、UNLINK 和 REQUEUE 方法不支持此目的。
    • 提供的请求版本总是 HTTP/1.1。
    • 某些 HTTP/1.0 服务器可以接受不在 HTTP/1.0 规范中定义的方法。 HTTP/1.0 服务器应该对它无法接受的方法返回状态码“501 未实施”。
  • 消息体适合某些请求方法而不适合其他请求方法。
    • 对于HTTP CICS ,您应该知道,某些客户端(尤其是用户编写的客户端)可能会在不适用的方法中发送消息正文,您可以根据需要处理或忽略此消息。
    • 对于HTTP CICS , CICS 禁止在不适当的方法中发送消息正文,而在适当的方法中要求发送消息正文。
  • 当 CICS HTTP时,对于从Web客户端接收到的请求, CICS会根据客户端的方法和 HTTP ,采取一系列操作来响应该方法。
    • 具有最多方法的请求直接传递到应用程序以供处理。
    • CICS 自动返回 OPTIONS 方法的相应响应,而不调用用户应用程序。
    • 如果 HTTP没有实现请求的方法, CICS 将向Web客户端返回错误响应,而不会调用用户应用程序。
  • 除了 HTTP 规范中定义的标准请求方法外,某些服务器可能还实施非标准请求方法(称为扩展方法)。
    • 对于作为 HTTP 服务器的 CICS , CICS 网络支持不接受 HTTP 协议中使用非标准方法的请求。 (在 CICS Transaction Server for z/OS®, Version 6 Release 3 之前,这些请求是作为非 HTTP 接受和处理的) 如果需要以非标准方法接收请求,可以通过用户定义的协议(TCPIPSERVICE 定义中的 USER 选项)来执行该操作,此时将不执行 HTTP 验收检查。
    • 对于HTTP CICS ,您不能在 EXEC CICS WEB API命令中使用非标准方法。

本参考中的表列出了可能使用每种方法的情况。 要获取有关本参考中提及的方法的更详细指导,请查询您正在遵从的 HTTP 规范。

CICS 作为 HTTP :处理来自Web客户端的请求方法

表 1 显示了 CICS 对请求方法执行的操作以及针对用户应用程序建议的操作。 要获取详细指导和任何相关需求,检查您正在遵从的 HTTP 规范很重要。

表 1. CICS 作为 HTTP :从Web客户端接收的请求方法
方法 使用 HTTP/1.0 客户机的 CICS 操作 使用 HTTP/1.1 客户机的 CICS 操作 消息体是否适合请求? 用户应用程序的适合操作
GET(资源的请求) 接受。 请求传递到应用程序。 接受。 请求传递到应用程序。 False 将资源发送到 Web 客户机,或发送说明为何无法执行该操作的错误响应。
HEAD(响应头的请求) 接受。 请求传递到应用程序。 接受。 请求传递到应用程序。 False 将资源发送到 Web 客户机,就像响应针对同一资源的 GET 请求一样。 CICS 除去响应主体以仅保留头。
PATCH (发送输入数据) 将永远不会收到方法。 不受支持。 接受。 请求传递到应用程序。 对方法的支持是可选的。 抽取数据,对其进行处理并向 Web 客户机发送响应。 可用于将更改应用于请求 URI 所标识的资源。 CICS 除去响应主体以仅保留头。
POST(发送输入数据) 接受。 请求传递到应用程序。 接受。 请求传递到应用程序。 对方法的支持是可选的。 抽出数据(可能是表单字段),处理该数据并将响应发送到 Web 客户机。 也可用于更改或创建资源,在这种情况下,如同对 PUT 请求进行处理一样。
PUT(发送新的项) 接受。 请求传递到应用程序。 接受。 请求传递到应用程序。 对方法的支持是可选的。 如果请求有效,那么按需使用消息内容创建具有指定 URL 的资源,或用消息内容替换现有资源。 将应答发送到 Web 客户机。 HTTP/1.1 规范对正确的操作有详细需求。
提示: 此请求类型不太可能适用于 CICS Web Support 实现。 需要的话,它可以通过为指定的 URL 创建 URIMAP 定义并存储要作为静态响应提供的资源来实现。
TRACE(请参阅请求的路径和最终状态) 拒绝,具有状态码“501 未实施”。 未调用用户应用程序。 拒绝,具有状态码“501 未实施”。 未调用用户应用程序。 False 未传递到用户应用程序。
OPTIONS(对于服务器相关信息的请求) 拒绝具有状态码 400 的错误请求。 未调用用户应用程序。

CICS 支持不带路径的 OPTIONS。 在这种情况下, CICS 接受并响应没有处理程序且未调用用户应用程序的 OPTIONS * 请求。

仅当已使用相关 TCPIPSERVICE 定义上的 OPTIONSPGM 参数指定了 OPTIONS 处理程序时, CICS 才支持具有路径的 OPTIONS。 在这种情况下, CICS 通过调用指定的处理程序来接受和响应 OPTIONS 请求。 处理程序负责向客户机发送响应。 请注意,即使在 TCPIP 端口上请求认证, OPTIONS 请求也不受认证约束。

如果未设置 OPTIONSPGM 参数,那么使用 405 拒绝指定带有路径的 OPTIONS 的请求。

未定义 未传递到用户应用程序。 当没有指定处理程序时 CICS 将返回包含基本信息的响应 HTTP和服务器软件描述)。 如果已指定处理程序,那么将调用该处理程序并负责响应客户机。
DELETE(删除资源) 接受。 请求传递到应用程序。 接受。 请求传递到应用程序。 False 对方法的支持是可选的。 如果请求有效,请删除现有资源,并将应答发送到 Web 客户机。
LINK、 UNLINK、 REQUEUE 接受。 请求传递到应用程序。 拒绝,具有状态码“501 未实施”。 未调用用户应用程序。 未定义 不推荐使用,因为没有在 HTTP/1.1 规范中描述。 为获取兼容性,仍将 HTTP/1.0 请求传递给应用程序。

CICS 作为 HTTP :使用服务器请求方法

表2 列出了 CICS 支持 HTTP请求的请求方法,并总结了这些方法的正确用法。 要获取正确使用每种方法的指导,以及应用到使用该方法的 HTTP 客户机的任何需求,请检查您正在遵从的 HTTP 规范。

表 2。 CICS 作为 HTTP :发送到服务器的请求方法
方法 是否发送到 HTTP/1.0 服务器? 是否发送到 HTTP/1.1 服务器? 请求中是否有消息体? 用途
GET(资源的请求) False 从服务器获取资源。
HEAD(响应头的请求) False 从服务器获取资源的头。 允许您检查资源的特征、状态或大小,而不必获取整个主体。
PATCH (发送输入数据) 服务器不支持此方法。 修改服务器上的资源。 URL 是资源在服务器URL。 该请求可用于更新现有项。 支持该方法不需要服务器。
POST(发送输入数据) 将数据发送到服务器。 例如,表单数据可能以这种方式发送。 支持该方法不需要服务器。
PUT(发送新的项) 可能不受服务器支持。 创建或修改服务器上的资源。 您的请求的 URL 是资源在服务器上具有的 URL。 请求可用于更新现有项或新建一个项。 支持该方法不需要服务器。
TRACE(请参阅请求的路径和最终状态) 可能不受服务器支持。 False 获取显示请求最终状态的响应及其带到服务器的路径(在 via 头字段中显示)。 您可以查看正在使用什么代理服务器以处理您的请求。 支持该方法不需要服务器。
OPTIONS(对于服务器相关信息的请求) 可能不受服务器支持。 允许,但是当前不打算为它定义。 获取有关服务器的信息。 通过将 *(星号)指定为请求路径,将请求应用到整个服务器,或指定完整请求路径以获取有关该资源的信息。 支持该方法不需要服务器。
DELETE(删除资源) 可能不受服务器支持。 False 删除服务器上的资源。 请求 URL 是要删除的项的 URL。 支持该方法不需要服务器。
通常是 LINK、 UNLINK、 REQUEUE 和扩展方法 不允许。 返回的 INVREQ 响应和未发送的请求。 不允许。 返回的 INVREQ 响应和未发送的请求。 未定义 CICS WEB API中, HTTP不可用。