Я использую Tomcat в качестве сервера и Internet Explorer 6 в качестве браузера. Веб-страница в нашем приложении содержит около 75 изображений. Мы используем SSL. Кажется, очень медленно загружается весь контент. Как я могу настроить Tomcat так, чтобы IE кэшировал изображения?


Контент обслуживается через HTTPS-соединение никогда не кешируется в браузере. Вы ничего не можете с этим поделать.
Обычно изображения на вашем веб-сайте не очень чувствительны и обслуживаются по HTTP именно по этой причине.
75 изображений - это много. Если это много маленьких изображений, есть способы объединить много изображений в одно, вы можете посмотреть, сможете ли вы найти библиотеку, которая делает это. Также вы, вероятно, можете принудительно кэшировать изображения во что-то вроде гугл шестерни.
Первый ответ правильный: при использовании HTTPS ничего не кешируется. Однако, когда вы создаете свою веб-страницу, вы можете рассмотреть возможность ссылки на изображения по их индивидуальным URL-адресам. Таким образом, вы можете указать изображения как происходящие из источника HTTP, и они (вероятно) будут кэшироваться браузером.
Если вы обслуживаете страницу через https, вам нужно будет обслуживать все включенные статические или динамические ресурсы через https (либо из того же домена, либо из другого домена, также через https), чтобы избежать предупреждения системы безопасности в браузере.
Контент, доставляемый по безопасному каналу, не будет записываться на диск по умолчанию в большинстве браузеров и поэтому находится в кэше памяти браузеров, который намного меньше, чем кеш на диске. Этот кеш также исчезает при выходе из приложения.
Сказав все это, вы можете сделать кое-что, чтобы улучшить кэшируемость для ресурсов SSL внутри одной настройки браузера. Для начала убедитесь, что все ваши активы имеют разумные заголовки Expires и Cache-Control. Если tomcat находится за apache, используйте mod_expires, чтобы добавить их. Это избавит браузер от необходимости проверять, изменилось ли изображение между страницами.
<Location /images>
FileEtag none
ExpiresActive on
ExpiresDefault "access plus 1 month"
</Location>
Во-вторых, и это характерно для MSIE и Apache, большинство конфигураций ssl apache включают эти строки
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
Что отключает поддержку активности для ВСЕХ агентов MSIE. ИМХО, это слишком консервативно, последними браузерами MSIE, в которых возникали проблемы с использованием SSL, были 5.x и непропатченные версии 6.0 до SP2, которые сейчас очень редки. Следующее является более мягким и не отключает сообщения поддержки активности при использовании MSIE и SSL.
BrowserMatch "MSIE [1-4]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [5-9]" ssl-unclean-shutdown
Некоторые браузеры кэшируют SSL-контент. Firefox 2.0+ не кэширует ресурсы SSL на диске по умолчанию (для повышения конфиденциальности). Firefox 3+ не кэширует их на диске, пока не появится заголовок Cache-control: public.
Поэтому правильно установите заголовок Expires: и Cache-control: public. например
<Files ~ "\.(gif|jpe?g|png|ico|css|js|cab|jar|swf)$">
# Expire these things
# Three days after access time
ExpiresDefault "now plus 3 days"
# This makes Firefox 3 cache images over SSL
Header set Cache-Control public
</Files>
Может быть, вы можете добавить дополнительный сервер / поддомен, который предоставляет изображения без https?
Если многие из этих 75 изображений представляют собой значки или изображения, которые появляются на каждой странице, вы можете использовать спрайты CSS, чтобы резко уменьшить количество HTTP-запросов и, таким образом, быстрее загружать страницу: