A system for session-based retrieval at a client system of content from a server system, said server system consisting of one or more computers serving string-based information from one or more content sources, comprising: a communication protocol that is configured to enable an asynchronous connection between a client system and a server system, and allows said client system to query said server system for string-based content during a session, said session comprising a period of time during which a user on the client system enters a single query for content; a content-based cache, at the server system, which contains strings and corresponding result sets previously retrieved from the one or more content sources; a client object, in communication with a client software at said client system, said client object capable of transmitting to a server object a plurality of query messages, wherein each of said plurality of query messages contains a string composed of a plurality of characters consecutively input by a user, consecutive query messages representing a lengthening query during the session; and, a server object, in communication with a server software at said server system, said server object furthermore in communication with said client object via said communication protocol, said server object in response to receiving each of said plurality of query messages is configured to use the lengthening query to query and retrieve content information from the content-based cache or from the one or more content sources, and, during the session, returns messages containing increasingly appropriate content information to the client object, whereby upon asynchronously receiving one of the return messages the client object is configured to check whether the one of the return messages corresponds to the latest query during the session to determine whether to display at least some of the information from the one of the return messages on the client system. a communication protocol that is configured to enable an asynchronous connection between a client system and a server system, and allows said client system to query said server system for string-based content during a session, said session comprising a period of time during which a user on the client system enters a single query for content; a content-based cache, at the server system, which contains strings and corresponding result sets previously retrieved from the one or more content sources; a client object, in communication with a client software at said client system, said client object capable of transmitting to a server object a plurality of query messages, wherein each of said plurality of query messages contains a string composed of a plurality of characters consecutively input by a user, consecutive query messages representing a lengthening query during the session; and, a server object, in communication with a server software at said server system, said server object furthermore in communication with said client object via said communication protocol, said server object in response to receiving each of said plurality of query messages is configured to use the lengthening query to query and retrieve content information from the content-based cache or from the one or more content sources, and, during the session, returns messages containing increasingly appropriate content information to the client object, whereby upon asynchronously receiving one of the return messages the client object is configured to check whether the one of the return messages corresponds to the latest query during the session to determine whether to display at least some of the information from the one of the return messages on the client system.