This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已经过机器动态翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
이 콘텐츠는 동적으로 기계 번역되었습니다. 책임 부인
Este texto foi traduzido automaticamente. (Aviso legal)
Questo contenuto è stato tradotto dinamicamente con traduzione automatica.(Esclusione di responsabilità))
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.책임 부인
Este artigo foi traduzido automaticamente.(Aviso legal)
这篇文章已经过机器翻译.放弃
Questo articolo è stato tradotto automaticamente.(Esclusione di responsabilità))
Translation failed!
调用 HTTP 标注
配置 HTTP 标注后,您可以通过在默认语法策略规则中包含 SYS.HTTP_CALLOUT(<name>)
表达式来调用标注。在此表达式中,<name>
是要调用的 HTTP 标注的名称。
您可以将默认语法表达式运算符与标注表达式一起使用来处理响应,然后执行适当的操作。来自 HTTP 标注代理的响应的返回类型决定了您可以在响应上使用的一组运算符。如果要分析的响应部分是文本,则可以使用文本运算符来分析响应。例如,您可以使用 INSTANTS (<string>) 运算符检查响应的指定部分是否包含特定字符串,如以下示例所示:
SYS.HTTP_CALLOUT(mycallout).contains("Good IP address")
<!--NeedCopy-->
如果您在响应程序策略中使用上述表达式,则可以配置适当的响应程序操作。
同样,如果要评估的响应部分是数字,则可以使用 GT (int) 等数字运算符。如果响应包含布尔值,则可以使用布尔运算符。
注意:HTTP 标注可以递归地调用自己。通过将 HTTP 标注表达式与防止递归的默认语法表达式相结合,可以避免 HTTP 标注递归。有关如何避免 HTTP 标注递归的信息,请参阅 避免 HTTP 标注递归。
您还可以通过配置策略,每个策略在评估之前生成的标注后调用一个标注,来级联 HTTP 标注。在这种情况下,在一个策略调用标注后,当 Citrix ADC 设备在将标注发送到标注服务器之前解析标注时,第二组策略可以评估标注并调用其他标注,而这些标注又可以由第三组策略进行评估,依此类推。下面的示例介绍了这样的实现。
首先,您可以配置一个名为 myCallout1 的 HTTP 标注,然后配置响应程序策略 Pol1 以调用 myCallout1。然后,您可以配置第二个 HTTP 标注,myCallout2 和响应程序策略 Pol2。您可以配置 Pol2 来评估 myCallout1 并调用 myCallout2。您可以在全局范围内绑定两个响应程序策略。
为了避免 HTTP 标注递归,myCallout1 配置了一个名为“Request1”的唯一自定义 HTTP 标头。Pol1 被配置为通过使用默认语法表达式避免 HTTP 标注递归
HTTP.REQ.HEADER("Request1").EQ("Callout Request").NOT.
<!--NeedCopy-->
Pol2 使用相同的默认语法表达式,但排除 .NOT 运算符,以便策略在 Citrix ADC 设备解析 myCallout1 时对其进行评估。请注意,myCallout2 标识了它自己的唯一标头,称为“Request2”,Pol2 包含一个默认语法表达式,以防止 myCallout2 递归地调用自己。
例如:
> add policy httpCallout myCallout1
Done
> set policy httpCallout myCallout1 -IPAddress 10.102.3.95 -port 80 -returnType TEXT -hostExpr
""10.102.3.95"" -urlStemExpr ""/cgi-bin/check_clnt_from_database.pl"" -headers Request1
("Callout Request") -parameters cip(CLIENT.IP.SRC) -resultExpr "HTTP.RES.BODY(100)"
Done
> add responder policy Pol1 "HTTP.REQ.HEADER("Request1").EQ("Callout Request").NOT &&
SYS.HTTP_CALLOUT(myCallout1).CONTAINS("IP Matched")" RESET
Done
> bind responder global Pol1 100 END -type OVERRIDE
Done
> add policy httpCallout myCallout2
Done
> set policy httpCallout myCallout2 -IPAddress 10.102.3.96 -port 80 -returnType TEXT -hostExpr
""10.102.3.96"" -urlStemExpr ""/cgi-bin/check_clnt_location_from_database.pl"" -headers Request2
("Callout Request") -parameters cip(CLIENT.IP.SRC) -resultExpr "HTTP.RES.BODY(200)"
Done
> add responder policy Pol2 "HTTP.REQ.HEADER("Request2").EQ("Callout Request").NOT &&
HTTP.REQ.HEADER("Request1").EQ("Callout Request") && SYS.HTTP_CALLOUT(myCallout2).CONTAINS
("APAC")" RESET
Done
> bind responder global Pol2 110 END -type OVERRIDE
Done
<!--NeedCopy-->
共享
共享
This Preview product documentation is Cloud Software Group Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Cloud Software Group Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Cloud Software Group product purchase decisions.
If you do not agree, select I DO NOT AGREE to exit.