Ich habe einen Apache mit http2, und ich habe einen Server Push von Dateien gemacht, die ich im Browser Cache speichern möchte, aber es tut nicht und ich weiß nicht warum.Wie kann ich Dateien im Browser-Cache speichern, nachdem ich sie mit einem Server-Push gedrückt habe?
Ich habe den Push mit einer PHP-Datei, die folgende gemacht.
header('Link: <'https://www.myweb.com/mypath'>;rel="preload";as="video"', FALSE);
Aus meiner Sicht ist der Server-Push funktioniert, weil ich die Anfragen an den Server im access_log sehen können, aber ich denke, dass die Dateien auf dem Browser-Cache gespeichert werden sollen, aber es funktioniert nicht.
Ich versuche, einen Server Push einer Datei, und danach, fordern Sie diese Datei und holen Sie sie aus dem Cache (siehe auf der Netzwerkkonsole von Chrome "aus dem Cache").
Dank
Haben Sie die 'Cache-Control'-Header des Push-Inhalts verifiziert? Welche hat es? Man kann 'public, max-age = somevalue',' expires', 'etag' und' last-modified' einstellen. Wenn auf der anderen Seite "private", "no-store" oder "no-cache" gesetzt sind, hilft Ihnen der Server Push nicht weiter. Server push einfach die Daten in den lokalen Cache des Webbrowsers legen. Der 'Cache-Control'-Header gibt an, ob die Daten aus dem Cache verwendet werden und wie lange sie verwendet werden. – Oleg
Ich habe darüber nachgedacht, aber ich weiß nicht, wo ich diese Parameter einstellen soll. Wenn ich die URL der Datei, die ich dränge, einstelle, wird die Datei heruntergeladen und im Cache gespeichert, weil sie die Parameter hat, die Sie angegeben haben. Aber es scheint, dass wenn ich den Push mache, er keinen Parameter hat. Ich weiß nicht, ob ich einen Parameter in der Zeile des Push (Header ...) setzen muss. – Elo
IMO, das Konfigurieren von Caching auch für eine HTTP/1.1-Website ist zu jeder Zeit des Jahres schwierig. Die Kombination mit HTTP2 Push ist noch schwieriger. [Hier ist ein Artikel] (https://www.shimmercat.com/en/info/articles/caching/) mit einigen Details zum Kombinieren des Abfrageparameters, Push und so weiter. Volle Offenlegung, wir haben einen Großteil des Servers erstellt, nur um das richtig zu machen, und wir sind immer noch auf dem Weg. – dsign