Я пытаюсь настроить параметры сжатия IIS7 в моем файле web.config. Я пытаюсь включить HTTP 1.0 запросы для gzip.
MSDN имеет всю информацию об этом здесь .
Возможно ли иметь эту конфигурационную информацию в файле web.config моего собственного сайта? Или мне нужно установить его на уровне приложения? В настоящее время у меня есть этот код в моем 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>
Это не работает :( Запросы HTTP 1.1 сжимаются, только не 1.0.
На этой странице MSDN сказано, что она может быть использована в:
- Machine.config
- ApplicationHost.config
- Корневое приложение Web.config
- Приложение Web.config
- Каталог Web.config
Итак, можем ли мы установить эти параметры отдельно для каждого веб-сайта, программно в файле web.config? (это файл приложения Web.config ...) Что я сделал не так?
ура :)
РЕДАКТИРОВАТЬ: Меня спросили, как я знаю, HTTP1.0 не сжимается. Я использую Правила отслеживания невыполненных запросов, которые сообщают:
DYNAMIC_COMPRESSION_START
DYNAMIC_COMPRESSION_NOT_SUCESS
Reason: 3
Reason: NO_COMPRESSION_10
DYNAMIC_COMPRESSION_END
источник
appcmd
для установки настроек уровня приложения (что, вероятно, намного проще).После тщательного изучения он по умолчанию «заблокирован» на уровне приложения. Как таковой, он должен быть «разблокирован». это может быть достигнуто через командную строку или (дополнительные загрузки) инструменты администрирования iis7.
например.
appcmd set config -section:urlCompression /doDynamicCompression:true
Refrences:
источник
Как вы проверяете, что HTTP1.0-запросы не сжимаются? Может ли быть так, что используемый вами клиент не сообщает серверу, что он может принять сжатый ответ?
Если вы видите заголовки, отправленные клиентом (представленные самим тестовым клиентом, использующие Firebug или аналогичные, если вы проводите тестирование в Firefox или IEHTTPHeaders, если вы тестируете в IE, или путем анализа трафика с помощью внешнего инструмента), вам следует увидеть что-то вроде
где-то там Если клиент не сообщает серверу, что он может принять сжатый ответ, то сервер не отправит его, независимо от того, какие другие параметры у вас есть на стороне сервера.
Другая проблема может быть, если вы тестируете через прокси-сервер, который идентифицировал себя как таковой. В этом случае параметр noCompressionForProxies может иметь приоритет и блокировать возможность сжатого ответа.
Следует отметить, что некоторые клиенты и прокси-серверы, которые отправляют запросы HTTP1.0 (обычно более старые программы), не будут правильно обрабатывать сжатый ответ, если они его получат, поэтому, если вы включаете сжатие для ответов на запросы HTTP1.0, убедитесь, что вы Протестируйте свой сайт / приложение во всех клиентских / прокси-программах, которые ожидают использовать посетители / пользователи. Это не проблема, если вы можете гарантировать, что ваша целевая аудитория будет использовать определенное программное обеспечение (если, например, приложение предназначено только для внутренней корпоративной сети), но в противном случае существует множество комбинаций для тестирования, поэтому большинство серверов отключают сжатие для 1.0 запросов полностью.
источник