предварительно сжатые gzip повреждаются на хроме, почему?

Java изначально реализовал отражение в версии 1.1.

Общие классы были введены в версии 5.0.

При представлении обобщений было решено, что по причинам обратной совместимости информация обобщенного типа будет удалена во время выполнения. Это позволило коду, который был написан предварительно, использовать дженерики без изменений.

Например, List[Integer32] будет переведен компилятором в Integer32[]. Все проверки типов будут выполняться во время компиляции, и если что-то будет пропущено, это вызовет ошибку времени выполнения.

Эта деталь реализации означала, что генерики не были усовершенствованы (в ВМ их нет конкретной реализации), и поэтому всякий раз, когда кто-то пытается отразить универсальный тип, возвращаемая информация будет принадлежать базовому типу. Другая причина, по которой это было бы выгодно, заключается в том, что виртуальные машины не должны реализовывать реализации для типов с расширенными типами (например, в C #, когда вы используете универсальный тип, его фактическая реализация генерируется виртуальной машиной во время выполнения, наряду с метаданными отражения, что приводит к снижению производительности всякий раз, когда необходимо сгенерировать новый тип).

5
задан vsync 7 June 2009 в 20:12
поделиться

6 ответов

Загрузите Fiddler и просмотрите заголовки необработанных ответов, чтобы узнать, что сервер отправляет обратно для этого конкретного запроса.

К вашему сведению, Fiddler - это прокси на стороне клиента, который фильтрует запросы вашего браузера через. Супер информативен при работе с такого рода проблемами.

- Обновление

После дальнейшего расследования выяснилось, что ваш RewriteCond на самом деле не делает то, что вы думаете. Согласно Документации , директива RewriteCond используется только вместе с RewriteRule.

3
ответ дан 13 December 2019 в 22:14
поделиться

Google Chrome (и Apple Safari) не поддерживают сжатые с помощью gzip CSS и JavaScript. Некоторые версии IE6 также имеют проблемы. Они поддерживают сжатые с помощью gzip HTML-документы, но не поддерживают CSS и JavaScript.

-2
ответ дан 13 December 2019 в 22:14
поделиться

Вам просто нужно установить поле заголовка Content-Encoding , чтобы сообщить клиенту, что данные ответа закодированы с помощью gzip:

<FilesMatch "\.gz$">
    Header set Content-Encoding gzip
</FilesMatch>

Но, к сожалению, Apache этого не делает. t позволяет установить это поле заголовка. Вместо Content-Encoding будет X-Content-Encoding .

0
ответ дан 13 December 2019 в 22:14
поделиться
  1. Вы должны использовать заголовок ответа Content-Encoding: gzip .
  2. Вы должны возвращать сжатый GZIP контент только тогда, когда клиентское Accept-Encoding заголовок разрешает GZIP .
3
ответ дан 13 December 2019 в 22:14
поделиться

Наш файл .htaccess (у нас есть файлы .jsz со сжатым javascript, и Chrome прекрасно их обрабатывает):

AddEncoding gzip .jsz
AddType text/javascript .jsz
2
ответ дан 13 December 2019 в 22:14
поделиться

Я ответил на аналогичный вопрос, указав гораздо более консервативное правило соответствия для Gzip:

Safari, Chrome и IE6 имеют проблемы с Gzip-загрузками. Также, Apache выполнит сжатие gzip для вас нет необходимости вручную gzip файлы. Попробуйте этот фрагмент:

 # Здесь используется mod_deflate, который довольно стандартен для Apache 2. Загрузка
# mod_deflate выглядит так:
#
# LoadModule deflate_module modules / mod_deflate.so
#
AddOutputFilterByType DEFLATE text / html text / plain text / xml application / xml application / xhtml + xml text / javascript text / css application / x-javascript
BrowserMatch ^ Mozilla / 4 gzip-only-text / html
BrowserMatch ^ Mozilla / 4 \ .0 [678] no-gzip
BrowserMatch \\ bMSIE! No-gzip! Gzip-only-text / html

См. Исходное сообщение: Как сделать так, чтобы в моем файле .htaccess Safari и другие браузеры могли открывать GZIP?

1
ответ дан 13 December 2019 в 22:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: