In order to transparently redirect an HTTP connection request that is
directed to an origin server (107) to a proxy cache (110-1), a proxy
redirector (104) translates the destination address of packets directed to
the origin server to the address of the proxy. During a handshaking
procedure, a TCP connection is transparently established between the
client (110-1) and the proxy cache. When the client transmits a GET
request to what it thinks is the origin server, which request specifies
the complete address of an object at that origin server that it wants a
copy of, the proxy redirector modifies the complete address specified in
that GET request before it is sent to the proxy cache. Specifically, the
IP address of the origin server found in the destination field in the IP
header of the one or more packets from the client containing the GET
request is added by the proxy redirector as a prefix to the complete URL
in the GET request to form an absolute URL. The proxy cache determines
from that absolute URL whether it has the requested object stored in its
cache. If it does, it sends the object back to the proxy redirector, which
masquerades those packets as coming from the origin server by translating
their destination address to the address of the client and their source
address to that of the origin server. If the proxy does not have the
requested object, a separate TCP connection is established between the
proxy and the origin server from where the object is retrieved and then
forwarded over the TCP connection between the client and the proxy. In
order to account for the additional number of bytes in the GET request, an
acknowledgement sequence number in packets returned from the proxy that
logically follow receipt of the GET request are decremented by that number
by the proxy redirector before being forwarded to the client. Similarly, a
sequence number in packets transmitted by the client subsequent to the GET
request are incremented by that number before being forwarded by the proxy
redirector to the proxy cache.
Afin de réorienter d'une manière transparente une demande de raccordement de HTTP qui est dirigée vers un serveur d'origine (107) à une cachette de procuration (110-1), un redirector de procuration (104) traduit l'adresse de destination des paquets dirigés vers le serveur d'origine à l'adresse de la procuration. Pendant un procédé d'poignée de main, un raccordement de TCP est d'une manière transparente établi entre le client (110-1) et la cachette de procuration. Quand le client transmet une demande d'OBTENIR à ce qu'il pense est le serveur d'origine, que la demande indique l'adresse complète d'un objet à ce serveur d'origine qu'elle veut une copie de, le redirector de procuration modifie l'adresse complète indiquée dans le ce OBTIENNENT la demande avant qu'il soit envoyé à la cachette de procuration. Spécifiquement, le IP address du serveur d'origine a trouvé dans la zone réceptrice dans l'en-tête d'IP des un ou plusieurs paquets du client contenant la demande d'OBTENIR est ajouté par le redirector de procuration comme un préfixe au URL complet dans la demande d'OBTENIR de former un Absolute URL. La cachette de procuration détermine à partir de ce Absolute URL si elle a l'objet demandé stocké dans sa cachette. Si elle , elle envoie l'objet de nouveau au redirector de procuration, qui des mascarades ces paquets comme venant du serveur d'origine en traduisant leur adresse de destination à l'adresse du client et à leur adresse de source à celui du serveur d'origine. Si la procuration n'a pas l'objet demandé, un raccordement séparé de TCP est établi entre la procuration et le serveur d'origine d'où l'objet est recherché et puis expédié au-dessus du raccordement de TCP entre le client et la procuration. Afin d'expliquer le nombre additionnel de bytes dans la demande d'OBTENIR, un nombre d'ordre de reconnaissance en paquets est retourné de la procuration qui suivent logiquement la réception de la demande d'OBTENIR sont décrémentés par ce nombre par le redirector de procuration avant d'être expédié au client. De même, un nombre d'ordre en paquets transmis par le client suivant à la demande d'OBTENIR sont incrémentés par ce nombre avant d'être expédié par le redirector de procuration à la cachette de procuration.