1. A method of routing requests from mobile device applications running on a mobile device, the method comprising: monitoring, by a client-side proxy on the mobile device, communications between the client-side proxy and a server, wherein the server is remote from the client-side proxy and operates in conjunction with the client-side proxy to optimize traffic in a wireless network to satisfy data needs of one or more mobile device applications; upon determining, by the client-side proxy, a problem communicating with the server, routing requests from the one or more mobile device applications directly to a service provider, wherein the routed traffic bypasses the client-side proxy; upon determining, by the client-side proxy, that communications with the server have resumed normal operation, re-routing requests from the mobile device applications to the client-side proxy for analysis of requests from the mobile device applications, wherein the analysis comprises identifying recurrent patterns in the requests, wherein traffic related to requests having identified recurrent patterns is optimizable, and traffic related to requests not having an identifiable pattern is not optimizable; upon identifying recurrent patterns in the requests from the mobile device applications, optimizing network traffic related to the requests, wherein optimizing network traffic comprises caching at the mobile device a request and a corresponding first response, requesting that the server poll the service provider on behalf of the mobile device application originating the request with the identified recurrent patterns, providing the cached first response to the mobile device application on at least a subsequent recurrent request; and upon receiving a new response to the cached request, invalidating at the mobile device the cached first response and caching at the mobile device the new response.