With the limitations posed by cellular networks and device capabilities, companies face serious challenges when deploying a high-performance mobile solution. Although TCP (Transmission Control Protocol: en.wikipedia.org/wiki/Transmission_Control_Protocol) was designed to work with fixed-line Internet, it does not perform well on mobile networks. Performance is variable and susceptible to degradation based on location and environment. It is difficult for a TCP protocol to detect congestion and perform reliable congestion avoidance due to high packet loss. Additional overheads such as DNS query and TCP slow start further amplify the slowdown for pages containing multiple small objects.
One way to address the above issues is to allow concurrent HTTP requests to run across a single TCP session. This improves page load time over the standard HTTP protocol, but with minimal modifications to the client logic and no deployment changes on the server side. It loosely replicates the stream multiplexing feature inside the SPDY (en.wikipedia.org/wiki/SPDY) protocol, but can support both the HTTP and HTTPS protocols without additional client extensions or server support. It can be best leveraged by mobile applications that require a high frequency of small object retrieval, such as maps, online catalogs, or social networking sites.
One solution is for clients to request multiple objects (e.g. images) via a single POST (http://en.wikipedia.org/wiki/POST_(HTTP))request to an edge server. Upon receiving the request, the edge server will fetch and store objects for packaging and delivery. The POST body included with the client request contains a list of encoded URLs. The edge server functions as a multiplexer/de-multiplexer in front of the existing Akamai delivery infrastructure. These processors are implemented by using Akamai's Edge Side Include (ESI) markup language. The de-multiplexer (pre-processor) will parse out HTTP POST payload, which will be in a structured format and retrieve the specified assets asynchronously from the origin web server. As the assets are retrieved successfully, the multiplexer (post-processor) will serialize the assets along with some minimal addition information (asset identifier, asset length) using a structured binary format and respond to the client with a standard, un-buffered HTTP response. The edge server can also cache the individual assets to improve delivery performance and origin offload.
After the client receives the request, it extracts individual objects from the HTTP response based on the embedded identifiers, and performs page rendering.