Heim >Backend-Entwicklung >PHP-Problem >So gehen Sie mit dem PHP 304-Fehler um

So gehen Sie mit dem PHP 304-Fehler um

藏色散人
藏色散人Original
2022-10-31 10:19:232141Durchsuche

So stellen Sie den PHP 304-Fehler ein: 1. Öffnen Sie die entsprechende PHP-Datei. 2. Ändern Sie den MD5-Wert der Zeit. 3. Übergeben Sie „@trim($_SERVER['HTTP_IF_NONE_MATCH']) == $etag) {header( Die Methode „HTTP /1.1 304 Not Modified“);exit; gibt 304 aus.

So gehen Sie mit dem PHP 304-Fehler um

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 8.1, Dell G3-Computer.

Was tun, wenn ein PHP 304-Fehler gemeldet wird?

php-statische Dateien geben 304 zurück

Manchmal werden einige statische Dateien (z. B. Bilder) von PHP ausgegeben, und Sie werden feststellen, dass die Anforderungen alle 200 sind. Es ist eine Ressourcenverschwendung, die statischen Dateien auf dem Server anzufordern jedes Mal. Wie kann ich den Browser zulassen? Was ist mit zwischengespeicherten Bildern? Wir müssen 304 in PHP ausgeben.

Dazu können wir HTTP_IF_MODIFIED_SINCE in PHP in Kombination mit Etag verwenden. Etag hat kein klar definiertes Format. Wir können den MD5-Wert der Dateiänderungszeit verwenden. Der Code lautet wie folgt:

private function _addEtag($file) {
    $last_modified_time = filemtime($file);
    $etag = md5_file($file);
    // always send headers
    header("Last-Modified: ".gmdate("D, d M Y H:i:s", $last_modified_time)." GMT");
    header("Etag: $etag");
    // exit if not modified
    if (@strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $last_modified_time ||
    @trim($_SERVER['HTTP_IF_NONE_MATCH']) == $etag) {
        header("HTTP/1.1 304 Not Modified");
        exit;
    }
}

Im Code kann er vor der statischen Datei aufgerufen werden (z. B. ein Bild) ausgegeben wird.

Empfohlenes Lernen: „

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo gehen Sie mit dem PHP 304-Fehler um. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn