J'essaie de configurer mes paramètres de compression IIS7 dans mon fichier web.config. J'essaie d'activer les requêtes HTTP 1.0 pour être gzip.
MSDN a toutes les informations à ce sujet ici .
Est-il possible d'avoir ces informations de configuration dans le fichier web.config de mon propre site Web? Ou dois-je le définir au niveau de l'application? Actuellement, j'ai ce code dans mon web.config ...
<system.webServer>
<urlCompression
doDynamicCompression="true"
dynamicCompressionBeforeCache="true" />
<httpCompression
cacheControlHeader="max-age=86400"
noCompressionForHttp10="False"
noCompressionForProxies="False"
sendCacheHeaders="true" />
... other stuff snipped ...
</system.webServer>
Cela ne fonctionne pas :( Les requêtes HTTP 1.1 sont compressées, mais pas 1.0.
Cette page MSDN ci-dessus dit qu'elle peut être utilisée dans: -
- Machine.config
- ApplicationHost.config
- Application racine Web.config
- Application Web.config
- Répertoire Web.config
Alors, pouvons-nous définir ces paramètres par site Web, par programme dans un fichier web.config? (il s'agit d'un fichier Application Web.config ...) Qu'est-ce que j'ai fait de mal?
à votre santé :)
EDIT: on m'a demandé comment je sais que HTTP1.0 n'est pas compressé. J'utilise les règles de suivi des demandes ayant échoué, qui rendent compte: -
DYNAMIC_COMPRESSION_START
DYNAMIC_COMPRESSION_NOT_SUCESS
Reason: 3
Reason: NO_COMPRESSION_10
DYNAMIC_COMPRESSION_END
la source
appcmd
pour définir les paramètres de niveau d'application (ce qui est probablement beaucoup plus facile).Après un peu de recherche, il est «verrouillé» par défaut au niveau de l'application. En tant que tel, il doit être «déverrouillé». ceci peut être réalisé via la ligne de commande ou via les outils d'administration (téléchargement supplémentaire) iis7.
par exemple.
appcmd set config -section:urlCompression /doDynamicCompression:true
Réfrences:
la source
Comment testez-vous que les requêtes HTTP1.0 ne sont pas compressées? Serait-ce que le client que vous utilisez ne dit pas au serveur qu'il peut accepter une réponse compressée?
Si vous pouvez voir les en-têtes envoyés par le client (présentés par le client de test lui-même, en utilisant Firebug ou similaire si vous testez dans Firefox ou IEHTTPHeaders si vous testez dans IE, ou en reniflant le trafic à l'aide d'un outil externe), vous devriez voir quelque chose comme
quelque part. Si le client n'informe pas le serveur qu'il peut accepter une réponse compressée, le serveur n'en enverra pas, quels que soient les autres paramètres que vous avez côté serveur.
Un autre problème pourrait se poser si vous testez via un serveur proxy qui s'est identifié comme tel. Dans ce cas, le paramètre noCompressionForProxies peut avoir la priorité et bloquer la possibilité d'une réponse compressée.
Une chose à noter est que certains clients et mandataires qui envoient des requêtes HTTP1.0 (généralement des logiciels plus anciens) ne géreront pas correctement une réponse compressée s'ils en obtiennent une, donc si vous activez la compression pour les réponses aux requêtes HTTP1.0, assurez-vous que vous testez votre site / application dans tous les logiciels client / proxy que vous attendez des visiteurs / utilisateurs. C'est moins un problème si vous pouvez garantir que votre public cible utilisera certains logiciels (si, par exemple, l'application est destinée à un réseau d'entreprise interne uniquement), mais sinon, il existe de nombreuses combinaisons à tester, c'est pourquoi la plupart des serveurs désactivent la compression pour 1.0 demande complètement.
la source