Переопределить значения «cache-control» в ответе HTTP
У меня есть веб-страница, которая возвращает следующий заголовок при доступе к материалу:
HTTP/1.1 200 OK
Date: Sat, 29 Jun 2013 15:57:25 GMT
Server: Apache
Content-Length: 2247515
Cache-Control: no-cache, no-store, must-revalidate, max-age=-1
Pragma: no-cache, no-store
Expires: -1
Connection: close
Используя расширение Chrome, я хочу изменить этоresponse header
так что материал на самом деле кэшируется вместо того, чтобы тратить пропускную способность.
У меня есть следующий пример кода:
chrome.webRequest.onHeadersReceived.addListener(function(details)
{
// Delete the required elements
removeHeader(details.responseHeaders, 'pragma');
removeHeader(details.responseHeaders, 'expires');
// Modify cache-control
updateHeader(details.responseHeaders, 'cache-control', 'max-age=3600;')
console.log(details.url);
console.log(details.responseHeaders);
return{responseHeaders: details.responseHeaders};
},
{urls: [""]}, ['blocking', 'responseHeaders']
);
Что правильно изменяет заголовок на что-то вроде этого (основываясь на выводе console.log ()):
HTTP/1.1 200 OK
Date: Sat, 29 Jun 2013 15:57:25 GMT
Server: Apache
Content-Length: 2247515
Cache-Control: max-age=3600
Connection: close
Но на основании всего, что я пытался проверить, я не вижу никаких доказательств того, что это действительно произошло:
cache
не содержит записи для этого файлаNetwork
вкладка вDeveloper Console
не показывает никаких изменений в HTTP-ответе (я пытался изменить его даже на тривиальные модификации только для того, чтобы убедиться, что это не ошибка, но все же без изменений).Единственные реальные подсказки, которые я могу найти:этот вопрос что говорит о том, что мой подход все еще работает, и этот пункт наДокументация по webRequest API что говорит о том, что это победилоне работает (но не работаетне могу объяснить, почему я не могуникаких изменений не произошло):
Обратите внимание, что API веб-запроса представляет абстракцию сетевого стека к расширению. Внутри один URL-запрос может быть разделен на несколько HTTP-запросов (например, для извлечения отдельных диапазонов байтов из большого файла) или может обрабатываться сетевым стеком без связи с сетью. По этой причине API не предоставляет окончательные заголовки HTTP, которые отправляются в сеть. Например, все заголовки, связанные с кэшированием, невидимы для расширения.
Ничто не работает вообще (я могу 'изменитьHTTP response header
вообще) так что я думаю, чтоЭто моя первая забота.
Любые предложения, где я могу пойти не так или как найти то, что идет не так?
Если это невозможно, есть ли другие способы достичь того, чего я пытаюсь достичь?