Web Cache Content Negotiation via Request Attribute Metadata
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current content negotiation schemes in web servers often cache only the first requested variant of a resource, leading to incorrect responses for subsequent requests, and require complex URL structures and client cooperation, which complicates search engine optimization and user experience.
Innovation Solution
A system that caches different versions of web content based on HTTP request attributes, such as headers, cookies, and session attributes, using metadata to determine the appropriate version for each request, allowing for transparent content negotiation and simplifying URL structures.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If content negotiation schemes cache only the first requested variant, then caching simplicity is maintained, but response accuracy for subsequent requests deteriorates
Solution Approach 1:
The cache entry is segmented into multiple variant copies, each stored separately with unique identifiers. Instead of caching only one variant, the system caches all possible variants (e.g., different languages, versions) of a resource, allowing accurate retrieval based on the specific request attributes while maintaining a structured and manageable cache organization.
Solution Approach 2:
The system introduces a variant identifier or metadata field as an intermediary element within the cache entry structure. This intermediary component enables the cache to distinguish between different variants of the same resource and select the appropriate one based on request attributes, resolving the conflict between simple caching and accurate content delivery.
2Adaptability or versatility
If URL structures are used to encode variation dimensions, then content differentiation is achieved, but URL structure complexity and search engine optimization deteriorate
Solution Approach 1:
The variation information is extracted from the URL structure and placed into separate cache metadata fields or headers. Instead of encoding language, version, or other variation dimensions directly in the URL path or query string, the system uses the cache infrastructure to store and manage these variations, keeping URLs clean and search-engine-friendly while maintaining full content differentiation capability.
Solution Approach 2:
The cache system serves multiple functions: it stores the actual content, manages variation identification, handles content negotiation, and provides selective retrieval. By making the cache infrastructure multi-functional, the system eliminates the need for complex URL encodings and achieves content differentiation through a single universal mechanism rather than multiple URL-based approaches.
Data Source
AI summary
Embodiments disclosed herein provide a high performance content delivery system in which versions of content are cached for servicing web site requests containing the same uniform resource locator (URL). When a page is cached, certain metadata is also stored along with the page. That metadata includes a description of what extra attributes, if any, must be consulted to determine what version of content to serve in response to a request. When a request is fielded, a cache reader consults this metadata at a primary cache address, then extracts the values of attributes, if any are specified, and uses them in conjunction with the URL to search for an appropriate response at a secondary cache address. These attributes may include HTTP request headers, cookies, query string, and session variables. If no entry exists at the secondary address, the request is forwarded to a page generator at the back-end.


