Transparent Content Negotiation
Transparent content negotiation is called "transparent" because it makes visible to the intermediate parties (between the origin server and the user agent e.g. proxy cache) all the variants that exist within the origin server and gives them the ability to choose the best representation on their behalf. Transparent content negotiation is a combination of proactive and reactive content negotiation. In reactive content negotiation, when a cache is provided in the form of a list of available representations of the response and the intermediate party has fully understood the dimensions of the variance, then the intermediate party becomes capable of performing proactive content negotiation on behalf of the origin server for subsequent requests on that resource.
Optimization of content negotiation could be achieved for example as explained below:
Scenario 0 - without transparent content negotiation:
Scenario 1 - if the intermediary parties cache both variant lists and variants:
Scenario 2 - the user agent can send small Accept- headers that contain enough information to allow the server to choose the best variant using a "remote variant selection algorithm", this possibility is made explicit in the "Negotiate" request header:
Scenario 3 - If we combine the above two scenarios and assume that the user agent sends Accept- headers that contain enough information and allow intermediate parties to choose the best variant, this optimization scenario is achieved:
Advantages | Disadvantages |
---|---|
|
|