Я заметил, что отсутствует заголовок ответа Content-Encoded
, в частности Content-Encoded: gzip. Я использую static content compression
. Функция dynamic content compression
так и не была установлена. Я установил его, включил и снова протестировал. На этот раз в ответе появилось Content-Encoded: gzip. Вопрос в том, почему заголовок ответа появляется для сжатия динамического содержимого, а не для сжатия статического содержимого? Я почти уверен, что IIS применяет gzip для сжатия статического содержимого. Вот почему:
У меня есть исходящее правило перезаписи URL-адресов IIS, которое изменяет ответ на HTML-странице. Правило исходящего трафика привело к ошибке 500.52, ошибка модуля перезаписи URL - правила перезаписи исходящего трафика не могут быть применены, если содержимое ответа HTTP закодировано («gzip»). Проблема не в правиле, а просто в свидетельстве того, что, как сообщается, применяется gzip. Я отключил правило. Это ключ №1.
Подсказка №2: я включил
Failed Request Tracing
и заметил, что применялось не только статическое сжатие, но StaticFileModule хранил сжатый файл в следующем месте: C: \ INETPUB \ TEMP \ IIS TEMPORARY COMPRESSED FILES \ MY WEBSITE \ $ ^ _GZIP_D ^ \ INETPUB \ WWWROOT \ TEST.HTML.
Я прочитал документ Microsoft о HTTP-сжатии IIS и - я могу ошибаться - я не видел ни одного языка, который предлагал бы использовать gzip со статическим сжатием. Основываясь на двух подсказках выше, gzip используется со статическим сжатием.
Итак, я возвращаюсь к исходной проблеме: Content-Encoded
заголовок ответа отсутствует для static content impression
, но данные свидетельствуют о том, что IIS не только сжимает статический контент, но и сжимает его с помощью gzip
. Это просто ошибка? Это задумано?