-
-
Konfigurieren der Anwendungsauthentifizierung, Autorisierung und Überwachung
-
-
Konfigurieren von erweiterten Richtlinienausdrücken: Erste Schritte
-
Erweiterte Richtlinienausdrücke: Arbeiten mit Datumsangaben, Zeiten und Zahlen
-
Erweiterte Richtlinienausdrücke: Analysieren von HTTP-, TCP- und UDP-Daten
-
Ausdrücke zur Identifizierung des Protokolls in einem eingehenden IP-Paket
-
Ausdrücke für HTTP-Statuscodes und numerische HTTP-Nutzlastdaten außer Datumsangaben
-
Operationen für HTTP-, HTML- und XML-Codierung und „Sichere“ Zeichen
-
Ausdrücke zum Auswerten einer DNS-Nachricht und zur Identifizierung ihres Carrier-Protokolls
-
Erweiterte Richtlinienausdrücke: Analysieren von SSL-Zertifikaten
-
Erweiterte Richtlinienausdrücke: IP- und MAC-Adressen, Durchsatz, VLAN-IDs
-
Erweiterte Richtlinienausdrücke: Stream-Analytics-Funktionen
-
Zusammenfassende Beispiele für erweiterte Richtlinienausdrücke
-
-
-
-
Verhalten des Content-Length-Headers in einer Rewrite-Richtlinie
-
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!
Verhalten des Content-Length-Headers bei einer Streaming-Rewrite-Aktion
Der Content-Length-Header ist eine der Möglichkeiten, die Länge der Nachricht (in Byte) in einer HTTP-Anfrage oder -Antwort anzugeben. Neben dem Content-Length-Header können Sie die Länge der Nachricht auch auf eine der folgenden Arten angeben:
- Blockierte Kodierung
- FIN-Kündigung
In einem Streaming-Prozess sendet der NetScaler nach der Verarbeitung der Rewrite-Aktion kontinuierlich Daten. Da die Daten kontinuierlich gesendet werden und nicht vom NetScaler gespeichert werden, ist die tatsächliche Länge der Nachricht, die an den Client gesendet würde, nicht bekannt. Daher kann der korrekte Wert des Content-Length-Headers in der Antwort nicht erwähnt werden.
Um den Streaming-Prozess zu unterstützen, konvertiert die Rewrite-Funktion von NetScaler die Art und Weise, wie die Länge der Nachricht angegeben wird, vom Content-Length-Header in die FIN-Terminierung. Im Rahmen der Konvertierung beschädigt der NetScaler den Content-Length-Header, indem er die ersten vier Zeichen des Headernamens neu anordnet.
In HTTP wird vom Client erwartet, dass er Header ignoriert, die er nicht versteht. Der Client versteht also den beschädigten Content-Length-Headernamen nicht und ignoriert daher den Header. Um die Leistung des NetScaler zu verbessern, wird der Header beschädigt statt gelöscht. Wenn Sie den Headernamen beschädigen, anstatt ihn zu löschen, wird eine Neuberechnung der Prüfsumme vermieden, da die Prüfsumme nicht geändert wird, wenn dieselben Bytes in einer anderen Reihenfolge sind.
Stellen Sie sich zum Beispiel die folgende HTTP-Anfrage vor:
GET / HTTP/1.1
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, /
Accept-Language: en-GB
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; CMDTDF; MS-RTC LM 8)
Accept-Encoding: gzip, deflate
Host: test.example.net
Connection: Keep-Alive
<!--NeedCopy-->
In einem funktionierenden Szenario lautet die Antwort zwischen NetScaler und dem Backend-Server auf diese HTTP-Anfrage wie folgt:
HTTP/1.1 200 OK
Content-Length: 10967
Connection: close
var SERVER_URL = 'https\x3a\x2f\x2ftest.example.net\x2f';
var WEB_SERVER_HOST = 'test.example.net';
<!--NeedCopy-->
Die Antwort, die der Client von NetScaler in einem nicht funktionierenden Szenario erhält, lautet jedoch wie folgt. Der Content-Length
-Header wird umbenannt in ntcoent-Length
.
HTTP/1.1 200 OK
ntCoent-Length: 10967
nnCoection: close
var SERVER_URL = 'https\x3a\x2f\x2ftest.example.net\x2f';
var WEB_SERVER_HOST = 'test.example.net';
<!--NeedCopy-->
Im Allgemeinen unterstützen die Client-Anwendungen alle drei Transaktionsarten: Content-Length-Header, Chunked-Codierung und FIN-Termination. Die Konvertierung vom Content-Length-Header zur FIN-Termination darf also keine Probleme verursachen. Wenn die Anwendung jedoch aufgrund dieser Änderung nicht funktioniert, müssen Sie den Streaming-Prozess deaktivieren.
So deaktivieren Sie den Streaming-Prozess in einer Rewrite-Richtlinie
Sie können den Streaming-Prozess in einer Rewrite-Richtlinie auf eine der folgenden Arten deaktivieren:
-
Fügen Sie eine Nicht-Streaming-Aktion hinzu, die mit einer Rewrite-Richtlinie verknüpft ist und an eine höhere Priorität gebunden ist. Die Aktion muss so sein, dass sie die Reaktion nicht verändert.
Zum Beispiel:
add rewrite action non_stream_act replace_all HTTP.RES.BODY(1000000) HTTP.RES.FULL_HEADER -search text("pattern_which_will_not_match_in_body")
Der Wert des Hauptteils in dieser Rewrite-Aktion muss höher sein als der Wert, auf dem die aktuelle Streaming-Aktion ausgeführt wird.
-
Verwenden Sie statt der Streaming-Konfiguration die Nicht-Streaming-Konfiguration.
Hinweis:
Der Übergang von der Streaming-Verarbeitung zur Verarbeitung ohne Streaming kann sich auf die Leistung des NetScaler auswirken.
Eine Streaming-Konfiguration kann beispielsweise wie folgt in eine Nicht-Streaming-Konfiguration konvertiert werden:
Streaming-Konfiguration:
add rewrite action rw_act_1 replace_all HTTP.RES.BODY(1000) ""http"" -search text("http") add policy patset pat_list bind policy patset pat_list abcd bind policy patset pat_list defg add rewrite action rw_act_2 replace_all HTTP.RES.BODY(1000) ""replaced_data"" -search patset("pat_list") <!--NeedCopy-->
Konfiguration ohne Streaming:
add rewrite action rw_act_1 replace_all HTTP.RES.BODY(1000) ""http"" -search regex(re/http/) add rewrite action rw_act_1 replace_all HTTP.RES.BODY(1000) ""http"" -search regex(re/abcd|defg/) <!--NeedCopy-->
Teilen
Teilen
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.