Referenzinformationen zur Caching-Proxy-API

Variablen

Beim Schreiben von API-Programmen können Sie Caching-Proxy-Variablen verwenden, die Informationen zum fernen Client- und Serversystem bereitstellen.

Anmerkungen:

Variablendefinitionen

Anmerkung:
Headervariablen, die nicht mit dem Präfix HTTP_ oder PROXY_ beginnen, sind mehrdeutig. Zur Vermeidung der Mehrdeutigkeit sollten Sie mit den Variablennamen für Header immer das Präfix HTTP_ oder PROXY_ verwenden.
ACCEPT_RANGES
Enthält den Wert für den Antwortheader "Accept-Ranges", der angibt, ob der Content-Server auf Anforderungen nach Bereichen antworten kann. Verwenden Sie PROXY_ACCEPT_RANGES, um den Headerwert zu extrahieren, der vom Content-Server an den Proxy gesendet wird. Verwenden Sie HTTP_ACCEPT_RANGES, um den Headerwert festzulegen, der vom Proxy an den Client gesendet wird.
Anmerkung:
ACCEPT_RANGES ist mehrdeutig. Zur Vermeidung der Mehrdeutigkeit sollten Sie stattdessen HTTP_ACCEPT_RANGES und PROXY_ACCEPT_RANGES verwenden.
ALL_VARIABLES
Schreibgeschützt. Enthält alle CGI-Variablen. Beispiel:
     ACCEPT_RANGES BYTES
     CLIENT_ADDR 9.67.84.3
AUTH_STRING
Schreibgeschützt. Wenn der Server die Clientauthentifizierung unterstützt, enthält diese Zeichenfolge die nicht decodierten Berechtigungsnachweise, die für die Authentifizierung des Clients verwendet werden sollen.
AUTH_TYPE
Schreibgeschützt. Wenn der Server die Clientauthentifizierung unterstützt und das Script geschützt ist, enthält diese Variable die Methode, die für die Authentifizierung des Clients verwendet wird. Beispiel: Basic.
CACHE_HIT
Schreibgeschützt. Legt fest, ob die Proxy-Anforderung im Cache gefunden oder nicht gefunden wurde. Folgende Werte können zurückgegeben werden:
CACHE_MISS
Nur Schreiben. Wird verwendet, um einen Cachefehltreffer zu erzwingen. Folgende Werte sind gültig:
CACHE_TASK
Schreibgeschützt. Gibt an, ob der Cache verwendet wurde. Folgende Werte können zurückgegeben werden:

Diese Variable kann in den Schritten "PostAuthorization", "PostExit", "ProxyAdvisor" oder "Log" verwendet werden.

CACHE_UPDATE
Schreibgeschützt. Zeigt an, ob die Proxy-Anforderung den Cache aktualisiert hat. Folgende Werte können zurückgegeben werden:
CLIENT_ADDR oder CLIENTADDR
Entspricht REMOTE_ADDR.
CLIENTMETHOD
Entspricht REQUEST_METHOD.
CLIENT_NAME oder CLIENTNAME
Entspricht REMOTE_HOST.
CLIENT_PROTOCOL oder CLIENTPROTOCOL
Enthält den Namen und die Version des Protokolls, das der Client verwendet, um die Anforderung zu stellen. Beispiel: HTTP/1.1.
CLIENT_RESPONSE_HEADERS
Schreibgeschützt. Gibt einen Puffer mit den Headern zurück, die der Server an den Client sendet.
CONNECTIONS
Schreibgeschützt. Enthält die Anzahl der Verbindungen, die bedient werden, oder die Anzahl der aktiven Anforderungen. Beispiel: 15.
CONTENT_CHARSET
Zeichensatz der Antwort für "text/*", z. B. US ASCII. Diese Variable kann für den vom Client gesendeten Header "content-charset" extrahiert werden und für den Header "content-charset" in der Anforderung an den Content-Server festgelegt werden.
CONTENT_ENCODING
Gibt die im Dokument verwendete Codierung an, z. B. x-gzip. Diese Variable kann für den vom Client gesendeten Header "content-encoding" extrahiert werden. Wenn diese Variable festgelegt wird, wird dadurch der Header "content-encoding" in der Anforderung an den Content-Server bestimmt.
CONTENT_LENGTH
Diese Variable kann für den Header in der Anforderung vom Client extrahiert werden. Wenn die Variable festgelegt wird, wird dadurch der Wert des Headers in der Anforderung an den Content-Server bestimmt.

Anmerkung:
CONTENT_LENGTH ist mehrdeutig. Zur Vermeidung der Mehrdeutigkeit sollten Sie stattdessen HTTP_CONTENT_LENGTH und PROXY_CONTENT_LENGTH verwenden.
CONTENT_TYPE
Diese Variable kann für den Header in der Anforderung vom Client extrahiert werden. Wenn die Variable festgelegt wird, wird dadurch der Wert des Headers in der Anforderung an den Content-Server bestimmt.

Anmerkung:
CONTENT_TYPE ist mehrdeutig. Zur Vermeidung der Mehrdeutigkeit sollten Sie stattdessen HTTP_CONTENT_TYPE und PROXY_CONTENT_TYPE verwenden.
CONTENT_TYPE_PARAMETERS
Enthält andere MIME-Attribute, aber nicht den Zeichensatz. Diese Variable kann für den Header der Clientanforderung extrahiert werden. Wenn die Variable festgelegt wird, wird dadurch der Wert des Headers in der Anforderung an den Content-Server bestimmt.
DOCUMENT_URL
Enthält die URL (Uniform Request Locator). Beispiel:
http://www.anynet.com/~userk/main.htm
DOCUMENT_URI
Entspricht DOCUMENT_URL.
DOCUMENT_ROOT
Schreibgeschützt. Enthält den Pfad des Dokumentstammverzeichnisses, der in den "Pass"-Regeln definiert wird.
ERRORINFO
Gibt den Fehlercode an, damit die Fehlerseite ermittelt werden kann. Beispiel: blocked.
EXPIRES
Legt fest, wann die im Proxy-Cache gespeicherten Dokumente verfallen. Diese Variable kann für den Header der Clientanforderung extrahiert werden. Wenn die Variable festgelegt wird, wird dadurch der Wert des Headers in der Anforderung an den Content-Server bestimmt. Beispiel:
Mon, 01 Mar 2002 19:41:17 GMT
GATEWAY_INTERFACE
Schreibgeschützt. Enthält die Version der API, die der Server verwendet. Beispiel: ICSAPI/2.0.
GC_BIAS
Nur Schreiben. Dieser Gleitkommawert wirkt sich auf die Garbage-Collection-Entscheidung für die Datei aus, für die die Garbage-Collection in Betracht gezogen wird. Der eingegebene Wert wird mit der Qualitätseinstellung von Caching Proxy für den betreffenden Dateityp multipliziert, um die Klassifizierung zu bestimmen. Qualitätseinstellungen werden von 0.0 bis 0.1 klassifiziert und werden mit der Anweisung "AddType" in der Proxy-Konfigurationsdatei (ibmproxy.conf) definiert.
GC_EVALUATION
Nur Schreiben. Dieser Gleitkommawert legt fest, ob die Datei, die für die Garbage-Collection in Betracht gezogen wird, entfernt (0.0) oder beibehalten werden soll (1.0). Die Werte zwischen 0.0 und 1.0 sind nach ihrer Rangordnung klassifiziert. Eine Datei mit dem Wert 0.1 für GC_EVALUATION wird mit höherer Wahrscheinlichkeit entfernt als eine Datei mit dem Wert 0.9 für GC_EVALUATION.
GC_EXPIRES
Schreibgeschützt. Legt fest, nach wie vielen Sekunden die fragliche Datei im Cache verfällt. Diese Variable kann nur von einem GC-Advisor-Plug-in extrahiert werden.
GC_FILENAME
Schreibgeschützt. Gibt die Datei an, die für die Garbage-Collection in Betracht gezogen wird. Diese Variable kann nur von einem GC-Advisor-Plug-in extrahiert werden.
GC_FILESIZE
Schreibgeschützt. Gibt die Größe der Datei an, die für die Garbage-Collection in Betracht gezogen wird. Diese Variable kann nur von einem GC-Advisor-Plug-in extrahiert werden.
GC_LAST_ACCESS
Schreibgeschützt. Gibt an, wann der letzte Zugriff auf die Datei erfolgte. Diese Variable kann nur von einem GC-Advisor-Plug-in extrahiert werden.
GC_LAST_CHECKED
Schreibgeschützt. Gibt an, wann die letzte Prüfung der Dateien erfolgte. Diese Variable kann nur von einem GC-Advisor-Plug-in extrahiert werden.
GC_LOAD_DELAY
Schreibgeschützt. Gibt an, wie lange das Abrufen der Datei gedauert hat. Diese Variable kann nur von einem GC-Advisor-Plug-in extrahiert werden.
HTTP_COOKIE
Wenn sie gelesen wird, enthält diese Variable den Wert des vom Client festgelegten Headers "Set-Cookie". Mit dieser Variablen kann auch ein neues Cookie im Antwortdatenstrom (zwischen dem Proxy und dem Client) festgelegt werden. Wenn diese Variable festgelegt wird, wird im Datenstrom der Dokumentanforderung ein neuer Header des Typs "Set-Cookie" erstellt, unabhängig davon, ob bereits ein solcher Header existiert oder nicht.
HTTP_HEADERS
Schreibgeschützt. Hiermit werden alle Header der Clientanforderung abgerufen.
HTTP_REASON
Wird diese Variable festgelegt, wird dadurch die Ursachenzeichenfolge in der HTTP-Antwort bestimmt. Außerdem wird dadurch die Ursachenzeichenfolge in der Proxy-Antwort an den Client bestimmt. Wird diese Variable extrahiert, wird die Ursachenzeichenfolge in der Antwort vom Content-Server an den Proxy zurückgegeben.
HTTP_RESPONSE
Wird diese Variable festgelegt, wird dadurch der Antwortcode in der HTTP-Antwort bestimmt. Außerdem wird in diesem Fall der Statuscode in der Proxy-Antwort an den Client bestimmt. Wird diese Variable extrahiert, wird der Statuscode in der Antwort vom Content-Server an den Proxy zurückgegeben.
HTTP_STATUS
Enthält den HTTP-Antwortcode und die Ursachenzeichenfolge, z. B. 200 OK.
HTTP_USER_AGENT
Enthält den Wert des Anforderungsheaders "User-Agent", bei dem es sich um den Namen des Web-Browsers auf dem Client handelt, z. B. Netscape Navigator / V2.02. Wird diese Variable festgelegt, wird dadurch der Header in der Proxy-Antwort an den Client bestimmt. Wird diese Variable extrahiert, bezieht sie sich auf den Header aus der Clientanforderung.
INIT_STRING
Schreibgeschützt. Die Anweisung "ServerInit" definiert diese Zeichenfolge. Diese Variable kann nur während des Schritts "Server Initialization" gelesen werden.
LAST_MODIFIED
Diese Variable kann für den Header der Clientanforderung extrahiert werden. Wenn die Variable festgelegt wird, wird dadurch der Wert des Headers in der Anforderung an den Content-Server bestimmt. Beispiel:
Mon, 01 Mar 1998 19:41:17 GMT
LOCAL_VARIABLES
Schreibgeschützt. Alle benutzerdefinierten Variablen.
MAXACTIVETHREADS
Schreibgeschützt. Die maximale Anzahl aktiver Threads.
NOTMODIFIED_TO_OK
Erzwingt eine vollständige Antwort an den Client. Gültig in den Schritten "PreExit" und "ProxyAdvisor".
ORIGINAL_HOST
Schreibgeschützt. Gibt den Hostnamen oder die IP-Zieladresse einer Anforderung zurück.
ORIGINAL_URL
Schreibgeschützt. Gibt die in der Clientanforderung gesendete Ursprungs-URL zurück.
OVERRIDE_HTTP_NOTRANSFORM
Ermöglicht die Änderung von Daten, wenn ein Header des Typs "Cache-Control: no-transform" vorhanden ist. Wird diese Variable festgelegt, wird dadurch der Header in der Antwort an den Client bestimmt.
OVERRIDE_PROXY_NOTRANSFORM
Ermöglicht die Änderung von Daten, wenn ein Header des Typs "Cache-Control: no-transform" vorhanden ist. Wird diese Variable festgelegt, wird dadurch die Anforderung an den Content-Server bestimmt.
PASSWORD
Enthält für die Basisauthentifizierung das entschlüsselte Kennwort. Beispiel password.
PATH
Enthält den vollständig übersetzten Pfad.
PATH_INFO
Enthält zusätzliche Pfadinformationen, die vom Web-Browser gesendet wurden. Beispiel: /foo.
PATH_TRANSLATED
Enthält die entschlüsselte und übersetzte Version der in PATH_INFO enthaltenen Pfadinformationen. Beispiel:
d:\wwwhome\foo
/wwwhome/foo
PPATH
Enthält den teilweise übersetzten Pfad. Verwenden Sie diese Variable im Schritt "Name Translation".
PROXIED_CONTENT_LENGTH
Schreibgeschützt. Gibt die Länge der Antwortdaten zurück, die tatsächlich über den Proxy-Server übertragen wurden.
PROXY_ACCESS
Legt fest, ob die Anforderung eine Proxy-Anforderung ist. Beispiel: NO.
PROXY_CONTENT_TYPE
Enthält den Header "Content-Type" der Proxy-Anforderung, die über HTTPD_proxy() ausgeführt wurde. Wenn Informationen mit der Methode POST gesendet werden, enthält diese Variable den Typ der enthaltenen Daten. Sie können in der Konfigurationsdatei des Proxy-Servers einen eigenen Inhaltstyp erstellen und einem Viewer zuordnen. Diese Variable kann für den Headerwert in der Antwort vom Content-Server extrahiert werden und für den Header in der Anforderung an den Content-Server festgelegt werden. Beispiel:
application/x-www-form-urlencoded
PROXY_CONTENT_LENGTH
Der Header "Content-Length" der Proxy-Anforderung, die über HTTPD_proxy() ausgeführt wurde. Wenn Informationen mit der Methode POST gesendet werden, enthält diese Variable die Anzahl der Datenzeichen. Die Server senden normalerweise kein Flag für Dateiende, wenn sie Informationen unter Verwendung der Standardeingabe weiterleiten. Falls erforderlich, können Sie den Wert CONTENT_LENGTH verwenden, um das Ende der Eingabezeichenfolge zu ermitteln. Diese Variable kann für den Headerwert in der Antwort vom Content-Server extrahiert werden und für den Header in der Anforderung an den Content-Server festgelegt werden. Beispiel:
7034
PROXY_COOKIE
Wenn sie gelesen wird, enthält diese Variable den Wert des vom Ursprungsserver festgelegten Headers "Set-Cookie". Sie kann auch verwendet werden, um im Anforderungsdatenstrom ein neues Cookie festzulegen. Wenn diese Variable festgelegt wird, wird im Datenstrom der Dokumentanforderung ein neuer Header des Typs "Set-Cookie" erstellt, unabhängig davon, ob bereits ein solcher Header existiert oder nicht.
PROXY_HEADERS
Schreibgeschützt. Hiermit werden die Proxy-Header extrahiert.
PROXY_METHOD
Methode für die über HTTPD_proxy() ausgeführte Anforderung. Diese Variable kann für den Headerwert in der Antwort vom Content-Server extrahiert werden und für den Header in der Anforderung an den Content-Server festgelegt werden.
QUERY_STRING
Wenn Informationen mit der Methode GET gesendet werden, enthält diese Variable die Informationen, die in einer Abfrage nach dem Fragezeichen (?) stehen. Diese Informationen müssen vom CGI-Programm decodiert werden. Beispiel:
NAME=Eugene+T%2E+Fox&ADDR=etfox%7Cibm.net&INTEREST=xyz
RCA_OWNER
Schreibgeschützt. Gibt den numerischen Werts des Knotens an, der Eigner des angeforderten Objekts war. Diese Variable kann in den Schritten "PostExit", "ProxyAdvisor" und "Log" verwendet werden. Sie ist nur dann aussagekräftig, wenn der Server Teil eines Cachebereichs ist, der den fernen Cachezugriff (RCA) verwendet.
RCA_TIMEOUTS
Schreibgeschützt. Gibt einen numerischen Wert zurück, der die (kumulierte) Gesamtzahl der Zeitlimitüberschreitungen bei RCA-Anforderungen an alle Peers enthält. Diese Variable kann in jedem Schritt verwendet werden.
REDIRECT_*
Schreibgeschützt. Enthält eine Umleitungszeichenfolge für den Fehlercode, der dem Variablennamen entspricht (z. B. REDIRECT_URL). Eine Liste gültiger Variablen des Typs REDIRECT_ ist in der Onlinedokumentation für den Apache-Webserver unter http://httpd.apache.org/docs-2.0/custom-error.html zu finden.
REFERRER_URL
Schreibgeschützt. Enthält die letzte URL-Position des Browsers. Mit dieser Variablen kann für den Server die Adresse (URL) der Ressource angegeben werden, aus der die Anforderungs-URL abgerufen wurde. Beispiel:
http://www.company.com/homepage
REMOTE_ADDR
Enthält die IP-Adresse des Web-Browsers, falls verfügbar. Beispiel: 45.23.06.8.
REMOTE_HOST
Enthält den Hostnamen des Web-Browsers, falls verfügbar. Beispiel: www.raleigh.ibm.com.
REMOTE_USER
Wenn der Server die Clientauthentifizierung unterstützt und das Script geschützt ist, enthält diese Variable den Benutzernamen, der zur Authentifizierung übergeben wurde. Beispiel: joeuser.
REQHDR
Schreibgeschützt. Enthält eine Liste der vom Client gesendeten Header.
REQUEST_CONTENT_TYPE
Schreibgeschützt. Gibt den Inhaltstyp für den Hauptteil der Anforderung zurück. Beispiel:
application/x-www-form-urlencoded
REQUEST_CONTENT_LENGTH
Schreibgeschützt. Wenn Informationen mit der Methode POST gesendet werden, enthält diese Variable die Anzahl der Datenzeichen. Die Server senden normalerweise kein Flag für Dateiende, wenn sie Informationen unter Verwendung der Standardeingabe weiterleiten. Falls erforderlich, können Sie den Wert CONTENT_LENGTH verwenden, um das Ende der Eingabezeichenfolge zu ermitteln. Beispiel: 7034.
REQUEST_METHOD
Schreibgeschützt. Enthält die Methode (die mit dem Attribut METHOD in einem HTML-Formular angegeben wurde), die zum Senden der Anforderung verwendet wird. Beispiel: GET oder POST.
REQUEST_PORT
Schreibgeschützt. Gibt die in der URL angegebene Portnummer zurück oder einen Standardport, der auf dem Protokoll basiert.
RESPONSE_CONTENT_TYPE
Schreibgeschützt. Wenn Informationen mit der Methode POST gesendet werden, enthält diese Variable den Typ der enthaltenen Daten. Sie können in der Konfigurationsdatei des Proxy-Servers einen eigenen Inhaltstyp erstellen und einem Viewer zuordnen. Beispiel: text/html.
RESPONSE_CONTENT_LENGTH
Schreibgeschützt. Wenn Informationen mit der Methode POST gesendet werden, enthält diese Variable die Anzahl der Datenzeichen. Die Server senden normalerweise kein Flag für Dateiende, wenn sie Informationen unter Verwendung der Standardeingabe weiterleiten. Falls erforderlich, können Sie den Wert CONTENT_LENGTH verwenden, um das Ende der Eingabezeichenfolge zu ermitteln. Beispiel: 7034.
RULE_FILE_PATH
Schreibgeschützt. Enthält den vollständig qualifizierten Dateisystempfad und Dateinamen der Konfigurationsdatei.
SSL_SESSIONID
Schreibgeschützt. Gibt die SSL-Sitzungs-ID zurück, wenn die aktuelle Anforderung über eine SSL-Verbindung empfangen wird. Gibt NULL zurück, wenn die aktuelle Anforderung nicht über eine SSL-Verbindung empfangen wird.
SCRIPT_NAME
Enthält die URL der Anforderung.
SERVER_ADDR
Schreibgeschützt. Enthält die lokale IP-Adresse des Proxy-Servers.
SERVER_NAME
Schreibgeschützt. Enthält den Hostnamen des Proxy-Servers oder die IP-Adresse des Content-Servers für diese Anforderung. Beispiel: www.ibm.com.
SERVER_PORT
Schreibgeschützt. Enthält die Portnummer des Proxy-Servers, an den die Clientanforderung gesendet wurde. Beispiel: 80.
SERVER_PROTOCOL
Schreibgeschützt. Enthält den Namen und die Version des Protokolls, das verwendet wurde, um die Anforderung zu stellen. Beispiel: HTTP/1.1.
SERVER_ROOT
Schreibgeschützt. Enthält das Verzeichnis, in dem das Proxy-Serverprogramm installiert ist.
SERVER_SOFTWARE
Schreibgeschützt. Enthält den Namen und die Version des Proxy-Servers.
STATUS
Enthält den HTTP-Antwortcode und die Ursachenzeichenfolge, z. B. "200 OK".
TRACE
Legt fest, welche Menge an Informationen beim Trace aufgezeichnet wird. Folgende Werte können zurückgegeben werden:
URI
Lesen/Schreiben. Entspricht DOCUMENT_URL.
URI_PATH
Schreibgeschützt. Gibt für eine URI nur den Teil zurück, der den Pfad enthält.
URL
Lesen/Schreiben. Entspricht DOCUMENT_URL.
URL_MD4
Schreibgeschützt. Gibt den Dateinamen der potenziellen Cachedatei für die aktuelle Anforderung zurück.
USE_PROXY
Gibt den Proxy an, dem die aktuelle Anforderung zugeordnet werden soll. Geben Sie die URL an. Beispiel: http://myproxy:8080.
USERID
Entspricht REMOTE_USER.
USERNAME
Entspricht REMOTE_USER.

Authentifizierung und Berechtigung

Zunächst eine kurze Übersicht über die Terminologie:

Authentifizierung
Die Verifizierung der Sicherheitstoken, die dieser Anforderung zugeordnet sind, um die Identität des Anfordernden festzustellen.
Berechtigung
Ein Prozess, der mit Hilfe von Sicherheitstoken feststellt, ob der Anfordernde Zugriff auf die Ressource hat.

Abb. 3 veranschaulicht den Prozess der Authentifizierung und Berechtigung des Proxy-Servers.

Abbildung 3. Prozess der Authentifizierung und Berechtigung des Proxy-Servers
Diagramm des Authentifizierungs- und Berechtigungsprozesses

Wie in Abb. 3 gezeigt, ist die Initialisierung des Berechtigungsprozesses der erste Schritt des Authentifizierungs- und Berechtigungsprozesses auf dem Server.

In Caching Proxy ist die Authentifizierung Teil des Berechtigungsprozesses. Sie findet nur dann statt, wenn eine Berechtigung erforderlich ist.

Prozess der Authentifizierung und Berechtigung

Bei der Verarbeitung einer Anforderung, für die eine Berechtigung erforderlich ist, befolgt der Proxy-Server die folgenden Schritte.

  1. Als Erstes prüft der Proxy-Server seine Konfigurationsdatei, um festzustellen, ob eine Anweisung für Berechtigung (Authorization) vorhanden ist.
  2. Der Proxy-Server beginnt den Authentifizierungsprozess, indem er prüft, ob der Header HTTP_authenticate in der Clientanforderung enthalten ist.
  3. Der Proxy-Server prüft, ob in der Proxy-Konfigurationsdatei eine Anweisung für Authentifizierung (Authentication) vorhanden ist.

Wenn das Caching-Proxy-Plug-in einen eigenen Berechtigungsprozess bereitstellt, überschreibt dieser Prozess die Standardberechtigung und -authentifizierung auf dem Server. Wenn daher Anweisungen für Berechtigung (Authorization) in Ihrer Konfigurationsdatei enthalten sind, müssen die zugehörigen Plug-in-Funktionen auch die erforderliche Authentifizierung ausführen. Die vordefinierte Funktion HTTPD_authenticate() wird zur Verwendung bereitgestellt.

Sie haben drei Möglichkeiten, um in Ihren Plug-ins für Berechtigung die Authentifizierung bereitzustellen:

Wenn Ihr Caching-Proxy-Plug-in keinen eigenen Berechtigungsprozess bereitstellt, können Sie wie folgt eine angepasste Authentifizierung festlegen:

Wenn der Schritt "Authorization" ausgeführt wird, führt er die Standardberechtigung des Servers aus, die wiederum die Plug-in-Funktion für Authentifizierung aufruft.

Beachten Sie folgende Punkte:

Varianten-Caching

Verwenden Sie das Caching von Varianten, wenn Sie Daten zwischenspeichern möchten, die eine modifizierte Form des Originaldokuments (URI) sind. Caching Proxy kann Varianten verarbeiten, die von der API generiert wurden. Varianten sind unterschiedliche Versionen eines Basisdokuments.

Wenn Ursprungsserver Varianten senden, kennzeichnen sie diese im Allgemeinen nicht als solche. Caching Proxy unterstützt nur Varianten, die von Plug-ins erstellt wurden (z. B. Codepagekonvertierung). Wenn ein Plug-in eine Variante auf der Basis von Kriterien erstellt, die nicht im HTTP-Header enthalten sind, muss es in den Schritt "PreExit" oder "PostAuthorization" eine Funktion einfügen, die einen Pseudoheader erstellt, damit Caching Proxy die vorhandene Variante erkennen kann.

Verwenden Sie beispielsweise ein Transmogrifier-API-Programm, um die von den Benutzern angeforderten Daten auf der Basis des vom Browser gesendeten Headers "User-Agent" zu modifizieren. Verwenden Sie die Funktion close, um den modifizierten Inhalt in einer Datei zu speichern, oder geben Sie in dieser Funktion eine Puffergröße an und übergeben Sie den Puffer als Datenargument. Verwenden Sie anschließend die Funktionen für Varianten-Caching, httpd_variant_insert() und httpd_variant_lookup(), um den Inhalt in den Cache zu stellen.

API-Beispiele

Als Starthilfe für das Schreiben eigener API-Funktionen für Caching Proxy werden im Verzeichnis samples der Installations-CD für Edge Components Beispielprogramme für Sie bereitgestellt. Weitere Informationen finden Sie auf der Website zu WebSphere Application Server unter www.ibm.com/software/webservers/appserv/.