Alexander Brock: HTTP-Cache

Beitrag lesen

Hallo Freunde des gehobenen Forumsgenusses,

231d230
<   $timeout = (int)round($timeout/2+0.00000000001);
237a237

// nutze die möglichkeiten der stream-Funktionen, um auch ssl-Resourcen zu saugen

Ich werde das noch implementieren. Aus den Zahlen werde ich allerdings nicht schlau, was willst du mit denen ausdrücken?

251d250
<   socket_set_timeout($pointer, $timeout);
271c270
<    $head .= 'If-None-Match: '.((string)$etag)."\r\n";

$head .= 'If-None-Match: '.$etag."\r\n";
274c273
<    $head .= 'If-Modified-Since: '.date('D, d M Y H:i:s', abs((int)$lastget))." GMT\r\n";


$head .= 'If-Modified-Since: '.date('D, d M Y H:i:s', abs($lastget))." GMT\r\n";
276a276
   // deflate vergessen => http://forum.de.selfhtml.org/archiv/2006/4/t128318/#m829037

Sehe ich das richtig, dass ich gzinflate verwenden muss, wenn der Server als "Content-Encoding: deflate" zurückschickt?

// Warum verarbeitest Du in Form einer Auffrischung nicht HTTP-Status 304? Letzen Teil bitte überarbeiten zumal Header während des Einlesens gleich geparst werden können

Darf man eine Verbindung einfach so abbrechen, wenn einen das Ergebnis nicht mehr interessiert?

98a89,90

//  völlig überflüssige CPU-Last eine URL _ist_ eindeutig und einmalig, md5 und sha1 können u.U. gleiche
//  Werte für verschiedene URLs liefern es ist überdenkenswerte hier mit einer Headerdatei für alle gespeicherten URLs zu arbeiten

In der Header-Datei stehen noch ein paar andere Informationen, wie ETag und Last-Modified, außerdem können URLs Zeichen enthalten, die nicht als Dateinamen erlaubt sind und sie können zu lang sein (hatte ich alles schon, war echt doof).

Die Wahrscheinlichkeit, dass unter n URLs zwei sind, die den gleichen MD5 _und_ den gleichen SHA1-Wert haben:

[latex]
1-\left(1-{1 \over {2^{128+160}}}\right)^n
[/latex]

Also ich halte das eindeutig für das kleinere Übel.

114d105
<   $url = (string)$url;
119a111

// warum prüfst Du mit is_int, um dann mit (int) zu konvertieren?

Wahrscheinlich habe ich zuerst den Typcast und dann die Abfrage geschrieben.

<   $res = serialize($this->files);

//  $res = serialize($this->files); redundant -> es wird unnötig Array-Key "url" mit abgespeichert, der ergibt sich aus dem Namen der Datei
       $res=serialize($this->file['url']);

Die URL wird genau einmal gespeichert, und zwar als Schlüssel in diesem Array, da ist gar nichts redundant.

Gruß
Alexander Brock