Delta Compression for Web Resource Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Transmitting large auxiliary files, such as JavaScript files, between web servers and browsers introduces significant latency and network traffic, especially when these files are frequently updated, as current systems require full file transmission each time they are updated.
Innovation Solution
A method and device that transmit a secondary resource's version value and location, along with instructions to store the resource, allowing the client to request and generate the resource using difference information if the version changes, reducing the need for full file retransmission by using delta compression and caching mechanisms.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If full auxiliary files are transmitted each time they are updated, then the client receives complete updated resources, but network traffic and transmission latency increase significantly
Solution Approach 1:
The patent segments the resource update process into two parts: transmitting only the delta (difference) information between versions, and transmitting the complete file only when necessary. This segmentation allows the system to send minimal update data while ensuring completeness when needed, resolving the contradiction between reliable updates and reduced transmission time.
Solution Approach 2:
The patent applies preliminary action by pre-calculating and storing delta information between file versions on the server side. When an update is needed, the system retrieves and transmits only the pre-computed delta rather than the entire file, significantly reducing transmission latency while maintaining update reliability.
2Reliability
If full auxiliary files are transmitted each time they are updated, then the client ensures it has the latest version, but the amount of network traffic increases significantly
Solution Approach 1:
The patent extracts only the essential update information (delta) from the complete file and transmits only that extracted portion to the client. This extraction principle allows the system to maintain version currency reliability while dramatically reducing the quantity of data transmitted over the network.
Solution Approach 2:
The patent applies partial action by transmitting only the necessary portion of update data (the delta between versions) rather than the excessive amount required for full file retransmission. This partial transmission approach maintains version currency while minimizing network traffic volume.
3Speed
If the client stores all auxiliary files locally, then access speed improves, but cache memory requirements increase
Solution Approach 1:
The patent segments the storage requirement into two parts: storing the base version of the file and storing only the incremental delta updates. This segmentation allows the client to maintain fast access speeds by keeping essential files locally while reducing overall cache storage requirements by not storing redundant full file versions.
Solution Approach 2:
The patent implements a nested structure where delta information is nested within the caching system alongside the base file version. The client stores the complete base file and nests the smaller delta updates within the same cache structure, allowing efficient space utilization while maintaining fast access to both base and updated versions.
Data Source
AI summary
A system and method provides secondary resource files in response to a request for a web page from a client device. In response to the request, a server provides an HTML file which identifies a secondary resource file, such as a javascript file, and the current version value of the secondary resource. The HTML file may be associated with a header which prevents the file from being cached. If there is no locally-cached version of the secondary resource file, the file is requested from the server. The server will transmit the secondary resource file with a header indicating that the file is to be stored indefinitely. If there is a locally-cached version of the secondary resource file, the client device compares the version value of the locally-cached version to the received current version value. If the values are different, the client requests the differences between the files. The server provides a difference file which the client device uses in conjunction with the locally-cached version of the secondary resource to generate the current version of the secondary resource.


