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 规范很重要。
| 方法 | 使用 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 规范。
| 方法 | 是否发送到 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不可用。 |