# WWWOFFLE Proxy

Der WWWOFFLE Server vereinfacht und beschleunigt das Herunterladen von World Wide Web Seiten auf Computern mit Wählverbindung ins Internet.

## Beschreibung

Das Programm wwwoffled ist ein einfacher Proxy-Server mit speziellen Funktionen für Wählverbindungen. Unter anderem ist es möglich, ohne stehende Verbindung ins Internet mit einem beliebigen Browser (von einem beliebigen Rechner) die schon einmal heruntergeladenen Seiten erneut aufzurufen.

Im Online Modus:

- Sämtliche Seiten werden lokal gespeichert und können später erneut aufgerufen werden.
- Seiten, die sich nicht geändert haben, werden nicht geholt (das spart Übertragung).
- Seiten, die verschlüsselt sind (SSL) werden durchgeschleust, aber nicht gespeichert.

Im Offline Modus:

- Seiten, die noch nicht heruntergeladen wurden, können bestellt werden.
- Die Bedienung erfolgt aus dem Browser heraus, oder via Kommandozeile.
- Auf jeder Seite gibt es (optional) eine Fußzeile von wwwoffle, die Aktualisieren, Löschen uvm. erlaubt.
- HTML Forms werden unterstützt.
- Ebenfalls werden kennwortgeschützte Seiten unterstützt (NEU).
- Es kann (optional) bei Bedarf automatisch eine Verbindung hergestellt werden.

Automatischer Download

- Seiten können interaktiv bestellt werden, das auch rekursiv.
- Bilder in den Seiten werden (optional) automatisch mit geholt.
- Ebenso funktioniert dies mit Frames.
- Seiten, die auf dem Server verschoben wurden, werden automatisch aktualisiert.
- Es können Seiten abonniert werden, d.h. sie werden z.B. alle sieben Tage automatisch geholt.
- Jede Seite wird gesichert, so daß eine Fehlermeldungsseite vom Server nicht das schon vorhandene, intakte Original überschreibt.

Funktionen:

- HTTP, FTP und FINGER Protokolle werden unterstützt.
- Eine Einführung mit Information und einen eingebauten Web-Server für Konfigurationsseiten.
- Verschieden sortierte und organisierte Index-Seiten für den Cache.
- Interaktive oder Kommandozeilenbedienung für den Online/Offline-Modus und für die sonstige Bedienung.
- Seiten können auf URL-Basis von Cache gelöscht werden.
- Seiten können rekursiv bestellt werden (ebenfalls auch per Browser).
- Die Konfigurationsdatei kann aus einem Browser heraus bearbeitet werden.
- Automatische Proxy-Konfiguration für Netscape.
- Der Index ist komplett durchsuchbar, mit dem (zusätzlich zu installierenden) ht://Dig Programm.

Allgemeines:

- WWWOFFLE kann auf einen oder mehrere externe Proxies zurückgreifen.
- Automatische Proxy-Authentifikation für diese Proxies (falls notwendig).
- Intranet-Seiten (lokal) sind auch im Offline-Modus noch verfügbar.
- WWWOFFLE kann konfiguriert werden, bestimmte URLs nicht zu holen oder nicht zu speichern (beispielsweise *chat.com).
- WWWOFFLE kann ausgehende HTTP Daten (User-Agent, Referer, ...) zensieren.
- Sämtliche Optionen werden durch eine Konfigurationsdatei kontrolliert.
- WWWOFFLE kann durch ein Passwort geschützt werden.
- Sämtliche Meldungen von WWWOFFLE können vom Benutzer angepaßt werden.

## Web Browser Konfiguration

Damit WWWOFFLE auch benutzt wird, müssen Sie ihren Browser darauf konfigurieren. Der Name des Proxy-Servers wird in der Regel `localhost` sein, außer Sie benutzen WWWOFFLE in einem lokalen Netzwerk mit mehreren Rechnern. Die Portnummer wird, außer Sie haben die Standardeinstellungen verändert, 8080 sein.

Automatische Konfiguration (Netscape ab Version 2.0):
Sie haben es einfach :-) In den Proxy-Einstellungen von Netscape einfach auf "Automatische Konfiguration" klicken und `http://localhost:8080/wwwoffle.pac` in die Eingabezeile eingeben.

Manuelle Konfiguration:

Netscape 1.x
  Im Menü "Options/Preferences" einfach bei "Proxies" `localhost` als Rechner und `8080` als Port (oder je nach dem wie Ihr Netzwerk aussieht) eingeben.
Netscape 2.x und 3.x
  Im Menü "Options/Preferences" bei "Proxies" wählen Sie die manuelle Proxy-Konfiguration und geben wie gehabt Proxy-Server Namen und Portnummer ein.
Netscape 4.x
  Im Menü "Edit/Preferences" wählen Sie den letzten Menüpunkt ("Advanced"), dort dann "Proxies", dort wählen Sie "Manual Proxy Configuration" und setzen den Namen und die Portnummer in die entsprechenden Felder (ggf. mehrmals) ein.
Mosaic, Lynx, Arena, Emacs-W3
  Geben sie folgendes vor Start des Programmes ein (oder schreiben Sie entsprechende Aufrufe in Ihre Startskripte): `setenv http_proxy http://localhost:8080/` (bei C-Shells) oder `export http_proxy http://localhost:8080/` (bei Bourne Shells). Genauso verfahren Sie mit `ftp_proxy`.

Es macht außerdem Sinn, den Cache des Browsers selbst abzuschalten, wenigstens den auf der Festplatte -- WWWOFFLE macht das auch, und ist dabei flexibler und vielseitiger (und u.U. auch schneller).

Manche Browser besitzen außerdem zwei Varianten, eine Seite erneut zu laden: eine stellt nur die Seite neu dar, bzw. stellt sicher, daß alles komplett da ist, die andere Variante zwingt auch sämtliche zwischen Quelle und Ihnen liegenden 'Agents' (also z.B. Proxies), die Seite(n) neu anzufordern. Bei der Benutzung von WWWOFFLE ist die letzte Option sinnvoll. (Anm.d.Übers.: Bei Netscape soll das gehen, indem man die `SHIFT` Taste gedrückt hält, während man auf den "Reload" Knopf drückt).

## WWWOFFLE Willkommensseite

Es gibt eine Willkommensseite bei http://localhost:8080/, welche eine kurze Einführung zu WWWOFFLE bietet und zu den verschiedenen Indexseiten, Konfigurationsoptionen und der WWWOFFLE Internet-Homepage führt.

Die wichtigste Informationsquelle für WWWOFFLE-Benutzer ist die Homepage bei http://www.gedanken.org.uk/software/wwwoffle.

## WWWOFFLE Indexseiten

Die Indexseiten sind über http://localhost:8080/ erreichbar. Sie sind folgendermaßen gegliedert:

- Eine Liste von angeforderten Bestellungen ("outgoing").
- Eine Liste von Dateien, die in der letzten, vorletzten und vorvorletzten "online" Sitzung geholt wurden. ("lasttime")
- Eine Liste von abonnierten URLs. ("monitored")
- Eine Liste von zuletzt geholten Dateien ("latest")
- Eine Liste von sämtlichen Rechnern ("hosts"), sortiert nach Protokollen (HTTP, FTP, GOPHER, etc) die von WWWOFFLE angesprochen wurden
- Eine Liste von sämtlichen Dateien, sortiert nach diesen Rechnernamen.

Diese Indizes können folgendermaßen sortiert werden:

- Überhaupt nicht
- Nach Zeit der letzten Änderung/Aktualisierung
- Nach Zeit des letzten Zugriffs
- Nach Datum der letzten Aktualisierung, täglich
- Alphabetisch
- Nach Dateityp (Datei-Endung)

Für jedes angezeigte Objekt gibt es eine Option zum Löschen, Aktualisieren, erneut bestellen, und abonnieren der jeweiligen URL. Ebenfalls ist es möglich, in der Konfigurationsdatei festzulegen, welche Dateien gar nicht im Index erscheinen (obwohl sie vorhanden sind).

## Bestellen von URLs

Seiten können entweder mit Hilfe des Browsers ganz normal heruntergeladen werden (z.B. bei Netscape mit Shift+Klick), oder sie können bestellt werden. WWWOFFLE merkt sich dann diese URL und sie wird im Hintergrund automatisch heruntergeladen oder aktualisiert (wenn sie schon im Cache vorhanden war). Dies funktioniert auch rekursiv, d.h. es werden alle Seiten ebenfalls heruntergeladen, die auf der bestellten Seite referenziert waren ("gelinked" waren). Wenn man hier nicht aufpaßt, kann man sich ganz schnell das gesamte Universum auf seine Festplatte replizieren ;-) also gibt es Beschränkungen für diese Suche: Man kann WWWOFFLE verbieten, während einer rekursiven Bestellung auf einen anderen Rechner zu wechseln, die Rekursionstiefe einschränken, Wechsel in andere Verzeichnisse verbieten, und noch viel mehr. Diese Funktionen sind auch im `wwwoffle` Kommandozeilenprogramm enthalten.

## Abonnieren von URLs

Es können Seiten angegeben werden, die regelmäßig in bestimmten Intervallen heruntergeladen werden, oder in jeder "online" Sitzung. Die Seiten werden heruntergeladen, wenn der angegebene Monat, Wochentag, Tag und die Zeitspanne stimmen, die der Benutzer angegeben hat.

Um zum Beispiel eine bestimmte URL jeden Sonntag morgen zu holen, geben Sie folgendes ein:

    Month of year : all
    Day of Month  : all
    Day of Week   : Sunday
    Hour of Day   : 0 (24 hour clock)

## Interaktive Steuerung/Konfiguration per Browser

Der WWWOFFLE Server kann vollständig via Browser kontrolliert und zwischen seinen verschiedenen Modi umgeschaltet werden, die Seite für die Steuerung lautet http://localhost:8080/control/. Die dort befindlichen Schaltflächen bewirken das gleiche wie die entsprechenden Optionen des Kommandozeilenprogramms `wwwoffle`. Ebenfalls gibt es eine Möglichkeit, Seiten aus dem Cache oder aus der Bestellliste zu löschen.

Hier gibt es ebenfalls eine Seite, um die Konfigurationsdatei von WWWOFFLE zu bearbeiten. Die Kommentare aus der Datei werden mit angezeigt, so daß man die entsprechende Referenz gleich zur Hand hat.

## Den WWWOFFLE-Cache durchsuchen

Wenn Sie das Programm `ht://Dig` (Version 3.08 oder neuer) installiert haben (Sie bekommen es bei http://htdig.sdsu.edu/), können Sie damit eine Such-Datenbank aus dem WWWOFFLE Cache aufbauen, und diese schnell durchsuchen. Die Seite http://localhost:8080/search/htdig/ liefert dafür das entsprechende Suchformular. Nähere Informationen, wie man WWWOFFLE und `ht://Dig` zur Zusammenarbeit bringt, liefert die Datei `README.htdig`.

## Eingebauter Web-Server

Alle URLs, die in das Verzeichnis `http://localhost:8080/local/` auf dem WWWOFFLE Rechner zeigen, werden von WWWOFFLE aus dem Verzeichnis `/html/local/` bedient. Es ist hiermit möglich, einen trivialen Web-Server aufzubauen (keine CGIs, keine Skripte, keine Spielereien) für kleine interne Web-Seiten. Die MIME-Types (für die HTTP-Kommunikation zwischen Server und Browser) werden der Konfigurationsdatei entnommen.

Achtung: Der Web-Server folgt symbolischen Links im Dateisystem, liefert aber nur Dateien, die auf dem System sowieso jeder lesen könnte. Siehe auch das Kapitel zur Sicherheit in der FAQ.

## Bestellungen entfernen/löschen

Falls in der WWWOFFLE Konfigurationsdatei kein Kennwort angegeben wurde, kann JEDER die Bestellungen von ALLEN Benutzern löschen und modifizieren. Falls ein Kennwort angegeben wurde, kann es jeder, der dieses Kennwort kennt. Wie gesagt -- Bombensicherheit war nicht eines der Hauptkriterien für die Entwicklung von WWWOFFLE.

Jeder kann auf jeden Fall seine eigenen Bestellungen sofort nach deren Aufgabe löschen (falls man sich schnell umentschieden hat :), indem er auf den "Löschen" Knopf gleich nach der Bestätigungsmeldung von WWWOFFLE klickt. Diese Funktion beinhaltet ein Einweg-Kennwort.

## Sicherungskopien von Seiten

Falls bei einem erneuten Herunterladen einer Seite, die schon im Cache vorhanden ist, ein Fehler auftritt, überschreibt diese Fehlermeldung u.U. die lokal vorhandene (ggf. ältere, aber immerhin vollständige) Version. Dies wird vermieden, indem von jeder Seite, die erneut heruntergeladen wird, eine Sicherungskopie angefertigt wird; diese wird solange anstelle der (alten) Originalseite behalten, bis sie gelesen wurde.

Diese Funktion ist für den Benutzer nicht mehr und nicht weniger transparent als die Fehlermeldung vom Server selbst, genauso viel oder wenig Benutzereingriffe sind also notwendig wie ohne Proxy.

## "Lock"-Dateien

Falls eine Seite von einem Proxy-Prozeß heruntergeladen wird und von einem weiteren erneut angefordert wird, wartet der zweite Prozeß, bis die Seite vollständig da ist, bis er sie lesen kann. So wird verhindert, daß ein und dieselbe Seite mehrmals (womöglich auch noch gleichzeitig) geholt wird.

Sollte der erste Prozeß die Datei nicht innerhalb einer bestimmten Zeit freigeben, wird der zweite Prozeß eine entsprechende Fehlermeldung an Ihren Browser weiterleiten.

## Das WWWOFFLE "Spool"-Verzeichnis

Das Spool-Verzeichnis ist erst einmal in die verschiedenen Protokolle aufgeteilt, diese Unterverzeichnisse enthalten jeweils dann für jeden bisher angesprochenen Rechner ein Unterverzeichnis (z.B. `http/www.gedanken.org.uk/`).

In jedem dieser Verzeichnisse sind für jede Seite zwei Dateien: eine beginnt mit 'D' und enthält die Daten, die andere beginnt mit 'U' und enthält die URL. Die Namen sind ansonsten identisch (wenn auch kryptisch, Anm.d.Übers. ;).

Das Verzeichnis mit den Bestellungen ("outgoing") enthält auch wieder zwei Dateien pro Bestellung, beginnend mit jeweils 'O' für die eigentliche Bestellung und 'U' für die URL.

Das "lasttime" Verzeichnis (die letzten geholten Seiten, s.o.) enthält einen Link zur wirklichen Datei, der mit 'D' beginnt, und eine Datei beginnend mit 'U', die die URL enthält.

Falls eines der "Rechnernamen"-Verzeichnisse ein symbolischer Link in ein anderes Verzeichnis innerhalb des WWWOFFLE-Baumes ist, dann werden die beiden Rechner als gegenseitige Spiegel ("mirrors") betrachtet, i.e. was sich in dem einen ändert, ändert sich auch in dem anderen, und es ist egal, welche Adresse man in seinem Browser aufruft.

## Die Programme und die Konfigurationsdatei

Es gibt zwei Programme, die zusammenarbeiten, und drei getrennte Aufgaben erledigen:

wwwoffle
  Das Programm, welches den HTTP Proxy 'daemon' kontrolliert und konfiguriert, außerdem die Schnittstelle zum Benutzer auf der Kommandozeile.
wwwoffled
  Der 'daemon' Prozeß, welcher die eigentliche Funktionalität eines HTTP Proxies besitzt.
wwwoffles
  Ein Server, welcher das eigentliche Herunterladen von Seiten erledigt.

Die beiden Programme `wwwoffles` und `wwwoffled` sind seit Version 1.1 zu einem Programm zusammengeschmolzen, dies erleichtert die Wartung des Servers und ist für spätere Erweiterungen besser gerüstet.

Die Konfigurationsdatei `wwwoffle.conf` enthält alle Einstellungen, die festlegen wie die ganze WWWOFFLE-Programmsuite sich der Außenwelt gegenüber verhalten soll.

### wwwoffle - die Kommandozeile

Das Programm `wwwoffle` stellt die Schnittstelle zum 'browser-losen' Benutzer ;) dar, und wird zum Festlegen der Betriebsmodi (online, offline, autodial) benutzt, damit der Server weiß, wann und wie er auf welche Anfragen reagieren muß/darf.

`wwwoffle -online` | Den WWWOFFLE Daemon in den 'online' Modus schalten.
`wwwoffle -autodial` | Den WWWOFFLE Daemon in den 'autodial' Modus schalten.
`wwwoffle -offline` | Den WWWOFFLE Daemon in den 'offline' Modus schalten.
`wwwoffle -fetch` | Den WWWOFFLE Daemon dazu bringen, bestellte/abonnierte Seiten zu holen. Dies funktioniert nur, wenn vorher `wwwoffle -online` ausgeführt wurde!
`wwwoffle -config` | Den WWWOFFLE Daemon die Konfigurationsdatei neu einlesen lassen.
`wwwoffle -purge` | Den WWWOFFLE Daemon zum Aufräumen des Caches veranlassen, d.h. es werden alle Seiten, die älter sind als die in der Konfigurationsdatei angegebenen Werte, gelöscht.
`wwwoffle -kill` | Den WWWOFFLE Daemon dazu bringen, sämtliche Unterprozesse zu beenden und sich dann sauber zu beenden. Falls einige Prozesse noch am Herunterladen sind, kann dies etwas dauern.

Man kann mit `wwwoffle` allerdings auch Aufträge an den Daemon weitergeben:

`wwwoffle <URL>` | WWWOFFLE holt die angegebenen URLs sofort (wenn 'online'), ansonsten werden sie bestellt.
`wwwoffle <DATEI.html>` | WWWOFFLE liest die angegebene HTML Datei ein und behandelt dort enthaltene Links als Bestellungen.
`wwwoffle -F <URL>` | WWWOFFLE wird gezwungen die URL neu zu laden, auch wenn sie schon vorhanden ist.
`wwwoffle -g[Sisfo]` | WWWOFFLE wird die heruntergeladene(n) Seite(n) auf Stylesheets("s"), Bilder (Images, "i"), Skripts ("s") und Frames ("f") untersuchen und diese ggf. auch mit herunterladen.
`wwwoffle -r[X]` | WWWOFFLE wird die angegebene Seite X-fach rekursiv holen, d.h. auch Links auf der heruntergeladenen Seite werden verfolgt. Hier bleibt WWWOFFLE jedoch auf dem gleichen Server.
`wwwoffle -R[X]` | Hier nicht mehr! (Vorsicht, Rekursionstiefen über 3 sind selten sinnvoll!) [Anm.d.Übers.]
`wwwoffle -d[X]` | Diese Option ist noch einschränkender als die vorherige, hier werden nur Verweise berücksichtigt, deren Ziele im gleichen Verzeichnis (oder innerhalb Unterverzeichnissen) liegen.

`wwwoffle` erlaubt es einem auch, selektiv Dateien aus dem Cache zu extrahieren, ohne die Verzeichnisstruktur durchwühlen zu müssen:

`wwwoffle -o <URL>` | WWWOFFLE holt die entsprechende URL aus dem Cache und gibt sie auf der Standardausgabe (STDOUT) aus.
`wwwoffle -O <URL>` | WWWOFFLE holt die entsprechende URL und gibt sie inklusive der HTTP Headerzeilen auf der Standardausgabe aus.

Der wichtigste Modus von `wwwoffle` ist natürlich folgender:

`wwwoffle -h` | WWWOFFLE gibt eine Zusammenfassung der verfügbaren Optionen aus.

An sämtliche der oben angegebenen Optionen kann noch folgendes angehängt werden:

`-c <configfile>` | Die Konfigurationsdatei explizit angeben. Dies wird benötigt, wenn Sie WWWOFFLE mit einem Kennwort geschützt haben!.
`-p <host>[<port>]` | Den Port, auf dem der WWWOFFLE Server auf Steuernachrichten bzw. Proxybefehle horcht, explizit angeben.

`$WWWOFFLE_PROXY`

Eine Umgebungsvariable, die den WWWOFFLE Hostnamen/Port beinhaltet. Die Syntax für die Variable ist ähnlich wie in der Kommandozeile, es können hier aber beide Ports angegeben werden, z.B.:

     WWWOFFLE_PROXY="localhost:8080:8081"

### WWWOFFLED - Der Dämon ;-)

Der Daemon `wwwoffled` fungiert als HTTP Proxy und akzeptiert nebenbei Steuerbefehle von `wwwoffle`. Er verwaltet und koordiniert die verschiedenen Modi von WWWOFFLE (online, offline, etc) und die Parameter in der Konfigurationsdatei und startet bei HTTP Proxy Anfragen Serverprozesse (via 'fork'), die die angeforderten Daten holen (das ist der oben angesprochene `wwwoffles` Teil). Der Server kann sich u.U. auch selbst 'fork'en.

`wwwoffled -c <configfile>` | Startet den HTTP Proxy mit der angegebenen Konfigurationsdatei.
`wwwoffled -d [X]` | Startet den HTTP Proxy im DEBUG Modus: Er läuft nicht im Hintergrund, sondern gibt je nach Debugging-Level 'X' (0 bis 5) auf dem Terminal, auf dem er gestartet wurde, mehr oder weniger Status- und Fehlermeldungen aus. Falls nicht angegeben, wird der Wert aus `log-level` aus der Konfigurationsdatei benutzt.
`-h` | Gibt eine kurze Erklärung der Kommandozeilenoptionen aus.

Es gibt eine Anzahl von Status- und Fehlermeldungen, die während des Betriebes von WWWOFFLE generiert werden können. Standardmäßig werden diese an den `syslog` Dienst weitergeleitet, mit dem `-d` Parameter werden sie zusätzlich auf dem Terminal angezeigt, auf dem `wwwoffled` gestartet wurde.

Mit den Optionen `run-uid / run-gid` aus der Konfigurationsdatei ist es möglich, `wwwoffled` als ganz bestimmten Benutzer laufen zu lassen. Dies erfordert allerdings, daß das Programm von `root` gestartet wurde (sonst kann es nicht seine eigenen Benutzerrechte anpassen) und daß der "Zielbenutzer" sämtliche Rechte im Spool-Verzeichnis hat.

### WWWOFFLES - Der Server

Der Server wird normalerweise vom Daemon (s.o.) via 'fork' gestartet. Er befindet sich dann in einem von drei verschiedenen Modi:

Real Mode

Der normale Betrieb. Das System ist online, agiert als Proxy für einen Browser (pro `wwwoffles`-Prozeß). Jede Anfrage nach einer URL erzeugt einen neuen Server, der diese Anfrage an den Zielhost weiterleitet, die Seite abholt, sie an den Browser schickt und zusätzlich im Spool- Verzeichnis ablegt. Existiert diese Seite schon im Spool-Verzeichnis, wird der Zielhost vorher gefragt, ob eine neuere Version existiert, sonst wird einfach die Seite aus dem Cache benutzt.

SpoolOrReal Mode | Der 'autodial'-Betrieb. Hier wird erst bei einer Anfrage entschieden, ob diese sofort aus dem Cache (ohne jeden Verbindungsaufbau nach außen) bedient wird oder ob eine Verbindung aufgebaut wird, wenn diese Seite nicht existiert.

Spool Mode

Das System ist offline, es existiert keine Verbindung nach außen und es wird auch keine aufgebaut. Die angeforderte Seite wird entweder aus dem Cache bedient, oder es wird eine 'Dummy-Seite' geliefert, mit der der Benutzer (je nach Konfiguration) die angeforderte Seite ggf. bestellen kann. Falls die Seite im Cache eine Fehlermeldung war (z.B. ein fehlgeschlagener Download), wird sie hiernach gelöscht, so daß eine erneute Anfrage ggf. einen weiteren Downloadversuch starten kann.

Fetch Mode | Es werden bestellte und abonnierte Seiten nach Bedarf aus den entsprechenden Verzeichnissen heruntergeladen. Diese Seiten werden im Cache gespeichert, kein Browser bekommt sie (vorerst) zu sehen.

Zusätzlich gibt es noch die folgenden Modi, die primär davon abhängen, ob angeforderte Dateien im Spool existieren oder nicht.

RealNoCache Mode | Es werden Seiten geholt, aber nicht im Spool gespeichert. Siehe `DontCache` Abschnitt in der Konfigurationsdatei.
RealRefresh Mode | Eine Seite wird noch einmal heruntergeladen, obwohl sie schon im Cache existiert. Diese Funktion wird von der "Aktualisieren"-Funktion am Fuß jeder HTML-Seite benutzt.
RealPassword Mode | Wird benutzt, wenn ein Kennwort angegeben wurde, und zwei Exemplare der Seite benötigt werden, eine mit und eine ohne Kennwort.
SpoolGet Mode | Wenn eine Seite nicht im Cache existiert, angefordert wurde und sie in die Bestellliste eingetragen werden muß.
SpoolWillGet Mode | Wenn eine Seite nicht im Cache existiert, angefordert wurde, sie aber schon in der Bestellliste eingetragen wurde.
SpoolRefresh Mode | Wenn die "Aktualisieren"-Funktion am Fuß einer HTML-Seite benutzt wurde, aber WWWOFFLE nicht 'online' ist, wird eine Bestellung gespeichert und die momentane Version der Seite aber beibehalten.
SpoolPragma Mode | Wenn ein Browser die Seite mittels `"Pragma: no-cache"` aktualisieren will. Die momentane Seite wird behalten und eine Bestellung wird gespeichert.

### WWWOFFLE-TOOLS - Der Werkzeugkasten ;-)

Dies ist eher ein 'quick hack', eine kleine Sammlung von Progrämmchen, die das Manipulieren des Caches von WWWOFFLE erlauben.

`wwwoffle-rm` | URLs aus dem Cache löschen. Allerdings ist dies nur für einzelne URLs gut -- um einen ganzen Host zu löschen, kann man auch direkt das Verzeichnis aus dem Cache löschen, das stört WWWOFFLE überhaupt nicht. (Oder einen Browser benutzen.)
`wwwoffle-mv` | URLs im Cache verschieben. Da die URL selbst in den 'kryptischen' Namen der Dateien im Cache enthalten ist, wird man mit `'mv'` nicht weit kommen. Stattdessen benutze man bitte `'wwwoffle-mv'`.
`wwwoffle-ls` | Den Cache-Inhalt anzeigen, im Stil von `'ls -l'`.

`wwwoffle-write`

Eine URL direkt in den Cache schreiben. Achtung: es wird ein korrekter HTTP-Header benötigt, sonst kommen viele Browser durcheinander! z.B:

          ( echo "HTTP/1.0 200 OK" ; echo "" ; cat bar.html ) | \
              wwwoffle-write http://www.foo.com/bar.html

Noch einmal: Dies sind schnelle kleine Hacks, sie gelten nicht als voll funktionsfähige und voll ausgebaute Programme.

### audit-usage.pl -- Protokolle analysieren

Das Perl-Skript `'audit-usage.pl'` analysiert die Logdateien des `wwwoffled` Servers und kann bei entsprechend hohem Loglevel (mindestens 4) genaue Informationen herausfiltern, wer wann welche URL über den Proxy angefordert hat. (mit "Wer" ist hier "welcher Rechner" gemeint.)

     wwwoffled -c /etc/wwwoffle/wwwoffle.conf -d 4   >> /tmp/audit.log   &

liefert die Datei `audit.log`, welche dann von `audit-usage.pl` ausgewertet werden kann.

## Test-Programme für WWWOFFLE

Im Verzeichnis `testprogs` befinden sich zwei kleine Testprogramme, die bei Bedarf kompiliert werden können. Sie werden für den normalen Betrieb nicht benötigt, aber falls Sie WWWOFFLE weitergehend anpassen möchten oder den HTML Parser für die automatisch generierten Seiten überprüfen, dann könnten sie nützlich sein.

Diese sind allerdings noch viel mehr 'dirty hacks' als die "wwwoffle-tools", also benutzen Sie sie auf eigene Gefahr!

## Autor und Copyright

Ich schreibe die original-Statments des Autos hier verbatim ab, nicht daß es irgendwelche rechtlichen Streitereien wegen einer ungünstigen Übersetzung gibt. :-))

The two programs wwwoffle and wwwoffled were written by Andrew M. Bishop in 1996,97,98 and are copyright Andrew M. Bishop 1996,97,98.

The programs update-cache, endian-cache and the programs known as wwwoffle-tools were written by Andrew M. Bishop in 1997,98 and are copyright Andrew M. Bishop 1997,98.

The Perl scripts update-config.pl and audit-usage.pl were written by Andrew M. Bishop in 1998 and are copyright Andrew M. Bishop 1998.

They can be freely distributed according to the terms of the GNU General Public License (see the file `COPYING').

The htdig package is copyright Andrew Scherpbier <andrew@contigo.com>. The icons in the html/htdig directory come from htdig as do the html/htdig/search.html and html/htdig/conf/htsearch.conf files with modifications by myself.

    With Source Code contributions from:

    Yannick Versley <sa6z225@public.uni-hamburg.de>
            Initial syslog code (much rewritten before inclusion).

    Axel Rasmus Wienberg <2wienbe@informatik.uni-hamburg.de>
            Code to run wwwoffled as a specified uid/gid.

    Andreas Dietrich <quasi@baccus.franken.de>
            Code to detach the program from the terminal like a *real* demon.

    Ullrich von Bassewitz <uz@wuschel.ibb.schwaben.com>
            Better handling of signals.
            Optimisation of the file handling in the outgoing directory.
            The log-level, max-servers and max-fetch-servers config options.

    Tilman Bohn <tb@bohn.isdn.uni-heidelberg.de>
            Autodial mode.

    Walter Pfannenmueller <pfn@online.de>
            Fetching objects (applets)

Die Übersetzung dieses Dokumentes wurde von Jens Benecke erstellt. Es gelten die gleichen Lizenzbestimmungen wie für das gesamte WWWOFFLE Paket, ich betrachte die von mir übersetzte Dokumentation als Teil der Software. Jeder, der dieses Dokument liest, sollte sich moralisch verpflichtet fühlen, mir Fehler oder Unstimmigkeiten sofort per eMail mitzuteilen ;-)