Я озадачен тем фактом, что я запрашиваю видеофайл из нашего ведра S3 с максимальным возрастом до 1 года. Я иногда получаю 304, но гораздо чаще за ними следуют несколько 200 ответов. Я пытаюсь сделать это правильно в IE11.IE кэширование поведения: ответ 304, а затем 200 на одном ресурсе?
Вот запрос и ответ 304:
Я также взял снимки этих запросов (в другой момент) с Чарльзом прокси:
А вот запрос и ответ на 200:
А вот запрос и ответ, как видно из Чарльз прокси:
Запросы вызваны элементом DOM, который сначала быть добавлены (что, как представляется, 304), а затем воспроизведение периодически снова начал с самого начала в JavaScript (те, кажется, 200-х).
Итак, вопрос в том, что я, возможно, пропустил в настройках или что-то, что предотвращает кеширование таких ресурсов?
Спасибо.
P.S.
- Просто чтобы быть ясно: «Всегда обновлять с сервера» выключен
- Я также вижу, что 200 ответов не как Google, «200 (из кэша)», так как общий объем загрузки продолжает увеличиваться с каждым видео нагрузки.
Интересный вопрос здесь. Прежде всего, давайте решим, где именно проблема. От взгляда на заголовок браузер отправляет все правильные заголовки, и проблема находится на самом сервере. Сервер здесь видит новый файл в случае 200 OK, поэтому изменение размера файла и обслуживание нового файла с использованием 200 OK - это ожидаемое поведение. но здесь странно, почему сервер отправляет новый файл с тем же старым etag !!!. Я думаю, что веб-интерфейс, который вы используете, скрывает некоторые заголовки, я бы предложил повторить тест при запуске Charles proxy или wirehark, чтобы увидеть, есть ли какая-либо разница. – Hani
@ Хани спасибо, что посмотрели на это со мной. Я добавил новые снимки заголовков, сделанные с помощью прокси-сервера Charles, но я не вижу никакой разницы. Единственное, что я вижу с ответом 304, заключается в том, что запрос выполняется с заголовком «If-Modified-Since» и «If-None-Match». Я предполагаю, что они позволяют серверу возвращать 304, но тогда возникает вопрос, почему IE не отправляет эти заголовки при воспроизведении видео. Кстати, сервер Amazon S3. Какие-нибудь дальнейшие идеи? –
моментальный снимок прокси-сервера charles, когда мы получаем 200 OK, не имеет заголовков «If-Modified-Since» и «If-None-Match». это означает, что клиент здесь не хочет получать кешированную версию и получать 200 OK в этом случае - это нормально. Но что заставляет меня задаться вопросом, почему в вашем первом снимке без charles прокси те те заголовки, где присутствуют по запросу, который получил 200OK. теперь, если мы сможем подтвердить, что мы получаем только 200 OK для первого запроса и любой последующий запрос без измененного заголовка, мы можем по крайней мере заключить, что проблема здесь на стороне клиента, и в этом случае нам понадобится ваш js-код, который перезагрузит ресурс. – Hani