Client Proxy and Surrogate Browser for Web Resource Pushing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The complexity of modern web pages with dynamic features leads to increased round-trip communications between browsers and origin servers, resulting in inefficient delivery of web pages due to the need for multiple requests and responses to fetch dependent resources.
Innovation Solution
A client proxy system and a push server system work together to reduce round trips by pre-fetching dependent resources from a surrogate browser located closer to the origin servers, allowing these resources to be pushed back to the client in a single or few transmissions, thereby minimizing the need for subsequent requests to the origin servers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If a browser requests a web page and all dependent resources from an origin server, then the web page can be fully displayed, but multiple round-trip communications are required resulting in increased latency
Solution Approach 1:
A surrogate browser is introduced as an intermediary component that runs on the origin server or a server closer to the client. The surrogate browser pre-loads dependent resources (CSS, JavaScript, images) and makes them available locally, eliminating the need for multiple round-trip communications between the client browser and origin server. This mediator resolves the contradiction by reducing latency through local resource availability while maintaining system functionality.
Solution Approach 2:
The surrogate browser performs preliminary actions by pre-loading and caching dependent resources before the actual web page request is processed. By anticipating and preparing resources in advance, the system eliminates waiting time during resource fetching, directly addressing the latency issue without requiring complex client-side modifications.
2Productivity
If a surrogate browser pre-fetches dependent resources, then the number of round trips is reduced, but the system complexity increases due to additional components
Solution Approach 1:
The surrogate browser is designed to perform multiple functions: it acts as a resource pre-loader, a local cache server, and a response generator. By consolidating these functions into a single component running on the origin server, the system achieves improved web page delivery efficiency without proportionally increasing overall system complexity. The surrogate browser's multi-functionality allows it to handle various resource types and request scenarios uniformly.
Solution Approach 2:
The surrogate browser autonomously identifies and pre-loads dependent resources without requiring explicit client requests for each resource. It self-manages the resource loading process, making decisions about which resources to fetch based on the web page structure. This self-service capability improves delivery efficiency while minimizing the need for complex client-server coordination protocols.
3Reliability
If multiple requests are sent to fetch dependent resources, then complete web page functionality is achieved, but the number of communications between client and server increases
Solution Approach 1:
The surrogate browser serves as a mediator that consolidates multiple resource requests into a single response. Instead of the client browser making separate requests for HTML, CSS, JavaScript, and images, the surrogate browser on the origin server prepares all these resources in advance and delivers them together, maintaining web page completeness while eliminating multiple communication rounds.
Solution Approach 2:
The system merges multiple resource delivery operations into a single coordinated response. The surrogate browser combines the main web page content with all dependent resources (stylesheets, scripts, images) into one comprehensive delivery cycle. This merging approach ensures complete web page functionality is achieved while minimizing communication time by eliminating sequential request-response cycles.
Data Source
AI summary
This specification describes systems, methods, devices, and other techniques for transmitting electronic resources to a client device. In some implementations, a computing system includes a client proxy system and a push server system. The client proxy system is configured to obtain requests issued from a client device and responses to requests issued by a surrogate browser of a push server system. The client proxy system matches responses from the push server system with requests from the client device to determine responses to the requests from the client device.


