2012-02-19 3 views
2

Я использую AWS SDK для .NET для загрузки нескольких изображений. Прежде чем создавать PutObjectRequest, я устанавливаю максимальный возраст и заканчивает заголовки для дальнейших интервалов и дат, соответственно.Предотвращение ненужных запросов «If-Modified-Since» и 304 ответов на Amazon S3

Это первоначальный запрос изображения:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 
Accept-Encoding:gzip,deflate,sdch 
Accept-Language:en-US,en;q=0.8 
Cache-Control:max-age=0 
Connection:keep-alive 
Host:assets.mywebsite.com.s3-us-west-1.amazonaws.com 
If-Modified-Since:Sun, 19 Feb 2012 18:36:48 GMT 
If-None-Match:"f19920f9367b698451d6c964d3ae714a" 
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11 

Вот ответ S3. Он отправляет обратно правильные заголовки кэширования:

Accept-Ranges:bytes 
Cache-Control:public, max-age=31536000 
Content-Length:9180 
Content-Type:image/jpeg 
Date:Sun, 19 Feb 2012 19:16:18 GMT 
ETag:"f19920f9367b698451d6c964d3ae714a" 
Expires:Sat, 19 Feb 2022 18:36:48 GMT 
Last-Modified:Sun, 19 Feb 2012 18:36:48 GMT 
Server:AmazonS3 

Однако каждый последующий запрос по-прежнему приводит в 304 (а не 200 из кэша):

Status Code:304 Not Modified 

Обратите внимание, я не попав F5.

Я читал, что когда вы смешиваете ETags и Expires/Cache-Control, ETags обычно используется для каждого запроса и вообще игнорирует кеширование. Я также прочитал, что нет способа отключить ETags в S3.

Я просто пытаюсь увеличить скорость и снизить затраты. Прежде чем я сдадусь, я решил, что спрошу сообщество SO.

Любые идеи о том, как предотвратить 304?

UPDATE:

Казалось бы, браузеры становятся все более и более изощренными, насколько кэширование идет. Как отмечает marcind, это проблема браузера клиента. После тестирования в других браузерах и разных сценариях (т. Е. Загрузка изображения непосредственно в хром (запрос URL-адреса изображения), а не просто просмотр изображения при наличии веб-страницы имеет разные эффекты)

ответ

2

Что такое заголовки с последующими запросами? Похоже, ваш клиент может отправить If-Modified-Since или что-то подобное.

обновление: так как ваш клиент отправляет If-Modified-Since Amazon делает правильные вещи. Это похоже на проблему с вашим клиентом.

+0

Извините, я забыл включить запрос в мое сообщение. Да, он отправляет как if-modified-since, так и if-none-match. –

 Смежные вопросы

  • Нет связанных вопросов^_^