1. A method comprising: receiving, by a server system including a plurality of application service providers' servers, a request to stream a program from the server system to a client system; performing load balancing across the server system, further comprising: maintaining a server list that includes the plurality of application service providers' servers ordered according to response times of the plurality of application service providers' servers for fulfilling responses to client requests; sending the server list to the client system, the server list used by the client system to determine to which of the plurality of application service providers' servers to send requests; receiving, by at least one application service provider's server of the plurality of application service providers' servers based on the server list, a plurality of requests, generated by the client system, to retrieve a plurality of program page segments of the program that are stored on the plurality of application service providers' servers, the plurality of requests forming a pattern of page segment requests; retrieving the plurality of program page segments; sending the plurality of program page segments to the client system; retrieving, based on the pattern of page segment requests, a specific program page segment, stored on the at least one application service provider's server of the plurality of application service providers' servers, to be sent to the client system.