Überschreiben Sie die Werte für die Cachesteuerung in einer HTTP-Antwort

Ich habe eine Webseite, die den folgenden Header zurückgibt, wenn ich auf Material zugreife:

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

Mit einer Chrome-Erweiterung möchte ich dies ändernresponse header so dass das Material tatsächlich zwischengespeichert wird, anstatt Bandbreite zu verschwenden.

Ich habe den folgenden Beispielcode:

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: ["<all_urls>"]}, ['blocking', 'responseHeaders']
);

Wodurch der Header korrekt in so etwas geändert wird (basierend auf der console.log () - Ausgabe):

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

Aber nach allem, was ich versucht habe, dies zu überprüfen, kann ich keinerlei Beweise dafür finden, dass dies tatsächlich passiert ist:

Dascache enthält keinen Eintrag für diese DateiDasNetwork Registerkarte in derDeveloper Console zeigt überhaupt keine Änderung an der HTTP-Antwort (ich habe versucht, sie in sogar triviale Modifikationen zu ändern, nur um sicherzustellen, dass es kein Fehler ist, aber immer noch keine Änderung).

Die einzigen wirklichen Hinweise, die ich finden kann, sinddiese Frage was darauf hindeutet, dass mein Ansatz immer noch funktioniert und dieser Absatz auf demDokumentation zur webRequest-API was darauf hindeutet, dass dies nicht funktioniert (aber nicht erklärt, warum ich überhaupt keine Änderungen erhalten kann):

Beachten Sie, dass die Webanforderungs-API der Erweiterung eine Abstraktion des Netzwerkstapels präsentiert. Intern kann eine URL-Anforderung in mehrere HTTP-Anforderungen aufgeteilt werden (z. B. um einzelne Bytebereiche aus einer großen Datei abzurufen) oder vom Netzwerkstapel verarbeitet werden, ohne mit dem Netzwerk zu kommunizieren. Aus diesem Grund stellt die API nicht die endgültigen HTTP-Header bereit, die an das Netzwerk gesendet werden. Beispielsweise sind alle Header, die sich auf das Zwischenspeichern beziehen, für die Erweiterung unsichtbar.

Es funktioniert überhaupt nichts (ich kann das nicht ändern)HTTP response header Ich denke, das ist meine erste Sorge.

Irgendwelche Vorschläge, wo ich falsch liegen könnte oder wie ich herausfinden kann, was hier falsch läuft?

Wenn es nicht möglich ist, gibt es andere Möglichkeiten, um das zu erreichen, was ich versuche zu erreichen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage