In HTTP, content negotiation is the mechanism that is used for serving different representations of a resource to the same URI to help the user agent specify which representation is best suited for the user (for example, which document language, which image format, or which content encoding)....the cache of the decision criteria so that it can reproduce it...cache needs to know which criteria the server used to select...