2009-08-16 3 views
27

Я пишу небольшое приложение, которое служит изображениям с локального компьютера, поэтому они могут быть доступны как http://localhost:12345/something/something (который возвращает jpeg).Как заставить веб-браузер кэшировать изображения

Как заставить браузер кэшировать это, так что на сервер будет отправлен только один запрос. Достаточно ли этого заголовка

HTTP/1.1 200 OK 
Cache-Control: public, max-age=99936000 
Content-Length: 123456 
Content-Type: image/jpeg 

Это, похоже, работает с Firefox 3.x, но достаточно ли этого для других браузеров?

+0

Связанный: Как заставить веб-браузер НЕ кэшировать изображения. http://stackoverflow.com/questions/126772/how-to-force-a-web-browser-not-to-cache-images –

ответ

-6

Вы не можете и Вы не должны - это решение пользователя, чтобы не ваше.

Что вы можете сделать может действительно настоятельно рекомендуется с правильными заголовками, но даже тогда вам следует ожидать, что сделка будет проводиться с несколькими запросами HEAD.

+3

В некоторых случаях, когда пропускная способность является проблемой, вы должны. – EaterOfCode

+17

Ответы, в которых ответчик предполагает, что вы не должны что-то делать, а не отвечать на вопрос .. являются самыми неприятными. Добавьте к этому, что это действительно разумный вопрос. – whitehawk

+4

Попытайтесь сказать, что когда у вас есть галерея с 4,1 миллионами изображений, ссылки на которые размещаются на разных сайтах. –

16

A Last-Modified и Expires заголовок также может быть полезным дополнением.

Ваш сервер также должен проверить запросы с заголовком If-Modified-Since и вернуть 304 Not Modified ответ, если это возможно, чтобы ускорить работу.