Манипулирование определенной записью в кеше на самом деле невозможно, даже расширения Firefox не имеют такого уровня доступа. Однако можно манипулировать заголовками, которые возвращает сервер. К сожалению, все существующие расширения сосредоточены на манипулировании заголовками запросов, а не заголовками ответов. Но расширение для этого было бы очень просто. Поэтому, возможно, вы захотите попробовать этот маршрут, прежде чем снова установить Squid. Вот код для такого расширения:
install.rdf
<?xml version="1.0" encoding="utf-8"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>headermanip@superuser.com</em:id>
<em:version>1.0</em:version>
<em:type>2</em:type>
<em:bootstrap>true</em:bootstrap>
<!-- Firefox -->
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>8.0</em:minVersion>
<em:maxVersion>99.0</em:maxVersion>
</Description>
</em:targetApplication>
<!-- Front End MetaData -->
<em:name>Caching header manipulation</em:name>
</Description>
</RDF>
bootstrap.js
Components.utils.import("resource://gre/modules/Services.jsm");
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
function install(data, reason) {}
function uninstall(data, reason) {}
function startup(data, reason)
{
Services.obs.addObserver(Observer, "http-on-examine-response", true)
};
function shutdown(data, reason)
{
Services.obs.removeObserver(Observer, "http-on-examine-response")
};
var Observer =
{
observe: function(subject, topic, data)
{
if (subject instanceof Components.interfaces.nsIHttpChannel &&
subject.URI.host == "cdn.sstatic.net")
{
subject.setResponseHeader("Cache-Control", "max-age=2592000", false);
}
},
QueryInterface: XPCOMUtils.generateQI([
Components.interfaces.nsIObserver,
Components.interfaces.nsISupportsWeakReference
])
};
Поместите эти два файла в ZIP-архив и переименуйте его в headermanip.xpi
- готово, у вас есть расширение, которое изменит заголовок кэширования для всего, что приходит с cdn.sstatic.net
(используется на этом сайте), чтобы срок его действия истек через 30 дней, а не обычные 7 дней. Если вы хотите, чтобы это произошло на другом хосте - смените subject.URI
в bootstrap.js
. Вы также можете проверить subject.URI.spec
если вы хотите посмотреть полный URL, а не только хост.