-
-
Personnaliser la configuration d'AppExpert
-
Configuration des services et des groupes de services pour une unité d'application
-
Configurer des points de terminaison publics pour une application
-
Configurer des groupes de persistance pour les unités d'application
-
Afficher les applications AppExpert et configurer les entités à l'aide du visualiseur d'applications
-
Configuration de l'authentification, de l'autorisation et de l'audit des applications
-
-
Configuration de l'expression de stratégie avancée : mise en route
-
Expressions de stratégie avancées : utilisation des dates, des heures et des nombres
-
Expressions de stratégie avancées : analyse des données HTTP, TCP et UDP
-
Expressions de stratégie avancées : analyse des certificats SSL
-
Expressions de stratégie avancées : adresses IP et MAC, débit, ID VLAN
-
Expressions de stratégie avancées : fonctions d'analyse de flux
-
-
Comportement de l'en-tête Content-length dans une stratégie de réécriture
-
Exemples d'actions et de stratégies de réécriture
-
Exemple 1 : Supprimer les anciens en-têtes X-Forwarded-For et Client-IP
-
Exemple 3 : Balisage des connexions sécurisées et non sécurisées
-
Exemple 6 : migration des règles du module de réécriture Apache
-
Exemple 8 : Redirection des requêtes vers le serveur interrogé
-
Exemple 11 : chiffrement RSA basé sur une stratégie sans remplissage
-
-
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!
Comportement de la longueur du contenu de l’en-tête dans une action de réécriture en continu
L’en-tête Content-Length est l’un des moyens d’indiquer la longueur du message (en octets) dans une requête ou une réponse HTTP. Outre l’en-tête Content-Length, vous pouvez également spécifier la longueur du message en utilisant l’une des méthodes suivantes :
- Codage fragmenté
- Arrêt FIN
Dans un processus de streaming, NetScaler envoie des données en continu après le traitement de l’action de réécriture. Comme les données sont envoyées en continu et ne sont pas conservées par NetScaler, la longueur réelle du message qui serait envoyé au client est inconnue. Par conséquent, la valeur correcte de l’en-tête Content-Length ne peut pas être mentionnée dans la réponse.
Pour faciliter le processus de diffusion, la fonction de réécriture de NetScaler convertit la manière d’indiquer la longueur du message entre l’en-tête Content-Length et la fin FIN. Dans le cadre de la conversion, NetScaler corrompt l’en-tête Content-Length en réorganisant les quatre premiers caractères du nom de l’en-tête.
En HTTP, le client est censé ignorer les en-têtes qu’il ne comprend pas. Le client ne comprend donc pas le nom d’en-tête Content-Length corrompu et ignore donc l’en-tête. Pour améliorer les performances de NetScaler, l’en-tête est endommagé au lieu d’être supprimé. Corriger le nom de l’en-tête au lieu de le supprimer évite de recalculer la somme de contrôle car la somme de contrôle n’est pas modifiée si les mêmes octets se trouvent dans un ordre différent.
Par exemple, considérez la requête HTTP suivante :
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-->
Dans un scénario fonctionnel, la réponse entre NetScaler et le serveur principal pour cette requête HTTP est la suivante :
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-->
Mais la réponse reçue par le client de NetScaler dans un scénario non fonctionnel est la suivante. L’en-tête Content-Length
est renommé en 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-->
En général, les applications clientes prennent en charge les trois méthodes de transaction : en-tête de longueur du contenu, codage par blocs et terminaison FIN. Ainsi, la conversion de l’en-tête Content-Length en Fin Termination ne doit pas poser de problème. Mais si l’application ne fonctionne pas à cause de cette modification, vous devez désactiver le processus de streaming.
Comment désactiver le processus de streaming dans une stratégie de réécriture
Vous pouvez désactiver le processus de diffusion dans une stratégie de réécriture de l’une des manières suivantes :
-
Ajoutez une action non liée au streaming associée à une stratégie de réécriture associée à une priorité plus élevée. L’action doit être telle qu’elle ne modifie pas la réponse.
Par exemple :
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")
La valeur du corps dans cette action de réécriture doit être supérieure à la valeur sur laquelle fonctionne l’action de diffusion en cours.
-
Au lieu de la configuration de diffusion, utilisez la configuration non de diffusion.
Remarque :
Le passage d’un traitement en streaming à un traitement sans diffusion peut avoir un impact sur les performances de NetScaler.
Par exemple, une configuration de diffusion peut être convertie en une configuration non de diffusion comme suit :
Configuration du streaming :
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-->
Configuration sans diffusion en continu :
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-->
Partager
Partager
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.