A method for satisfying a single request from a client for a plurality of content components derived from content hosted by a plurality of distinct, separately accessible component servers (502-508; 904), the method comprising a main server (510, 902): receiving a single request specifying the content components, the single request being a request for a personalized Web page; after receiving the single request, generating a plurality of information requests for respective content components of the plurality of content components by creating a chain of HTTP request objects, wherein the chain can be processed from a user perspective as a single HTTP request in which work on all requests is done in parallel; sending each information request for a respective content component to the component server hosting the respective content component of the information request; forming the respective content components from respective responses to the information requests, comprising assembling the personalized Web page from the content components; and transmitting the content components to the client, comprising sending the personalized Web page to the client; wherein the main server: sends each information request for a respective content component to the component server hosting the respective content component of the information request before receiving a response to any of the information requests; instantiates a timer after the step of sending each information request and before forming the personalized web page; if no response is received from one of the component servers prior to a timeout period of the timer, immediately establishes the response from that component server as a null value, and forms the personalized Web page and transmits the personalized Web page to the client without waiting for that response; and employs connection pooling, whereby a socket used for an HTTP request is not automatically discarded after the response to the HTTP request is received, but instead is cached to a connection pool, and subsequent HTTP requests use the sockets from the connection pool by using the host name and port number of the HTTP request as a key to the cache. receiving a single request specifying the content components, the single request being a request for a personalized Web page; after receiving the single request, generating a plurality of information requests for respective content components of the plurality of content components by creating a chain of HTTP request objects, wherein the chain can be processed from a user perspective as a single HTTP request in which work on all requests is done in parallel; sending each information request for a respective content component to the component server hosting the respective content component of the information request; forming the respective content components from respective responses to the information requests, comprising assembling the personalized Web page from the content components; and transmitting the content components to the client, comprising sending the personalized Web page to the client; wherein the main server: sends each information request for a respective content component to the component server hosting the respective content component of the information request before receiving a response to any of the information requests; instantiates a timer after the step of sending each information request and before forming the personalized web page; if no response is received from one of the component servers prior to a timeout period of the timer, immediately establishes the response from that component server as a null value, and forms the personalized Web page and transmits the personalized Web page to the client without waiting for that response; and employs connection pooling, whereby a socket used for an HTTP request is not automatically discarded after the response to the HTTP request is received, but instead is cached to a connection pool, and subsequent HTTP requests use the sockets from the connection pool by using the host name and port number of the HTTP request as a key to the cache. sends each information request for a respective content component to the component server hosting the respective content component of the information request before receiving a response to any of the information requests; instantiates a timer after the step of sending each information request and before forming the personalized web page; if no response is received from one of the component servers prior to a timeout period of the timer, immediately establishes the response from that component server as a null value, and forms the personalized Web page and transmits the personalized Web page to the client without waiting for that response; and immediately establishes the response from that component server as a null value, and forms the personalized Web page and transmits the personalized Web page to the client without waiting for that response; and employs connection pooling, whereby a socket used for an HTTP request is not automatically discarded after the response to the HTTP request is received, but instead is cached to a connection pool, and subsequent HTTP requests use the sockets from the connection pool by using the host name and port number of the HTTP request as a key to the cache.