A reverse proxy server may be used to represent a secure content server to an outside client, preventing direct, unmonitored access to an intranet host server's data from outside the intranet. The reverse proxy server may also be used for replication; that is, multiple proxy servers may be associated with a heavily used host server for load balancing. In a system employing the reverse proxy server, an outside client trying to access a host server is directed to the reverse proxy server. Real content may reside on the host server, safely on one side the firewall. The reverse proxy server may reside on the other side the firewall, and appear to the client to be the host server.
A typical reverse proxy server for the Internet may be configured such that the incoming Hyper Text Transfer Protocol (HTTP) requests intended for the host server are directed to the reverse proxy server. Upon receiving the HTTP request, the reverse proxy server for the Internet may determine whether it has a copy of the requested object stored locally. If so, the reverse proxy server for the Internet may respond to the HTTP request. If not, the reverse proxy server for the Internet may employ a Transmission Control Protocol (TCP) connection over the Internet to the intended host server. The reverse proxy server may then employ the TCP connection to send the HTTP request to the host server. If the request is successful, the host server may send the requested object to the reverse proxy server.
Upon receiving the requested object from the host server, the reverse proxy server may perform content processing, also called content patching. Content patching commonly refers to the process of modifying links in the requested object, which may be a web page or other form of data. When the links are modified, the reverse proxy server may send the requested object to the client.
The above described process may work well for objects including exclusively static Hyper Text Markup Language (HTML) data. However, many web pages and other forms of HTTP data include dynamic links created by eXtensible Markup Language (XML)java script or java applets. Furthermore, minor problems with links such as syntax errors, missing symbols are generally not recognized by content patching applications resulting in incorrect or invalid links in the processed web page. Thus, it is with respect to these considerations and others that the present invention has been made.