Subject: [New issue] Vary requirement level inconsistency

From: Henrik Nordstrom <[email-masked]>
Date: Sun, 31 Aug 2008 11:12:44 +0200

p3 is a little confusing regarding the use of Vary

p3 5.1.  Server-driven Negotiation

   The Vary header field (Section 16.5 of [Part6]) can be used to
   express the parameters the server uses to select a representation
   that is subject to server-driven negotiation.

p6 16.5.  Vary

   An HTTP/1.1 server SHOULD include a Vary header field with any
   cacheable response that is subject to server-driven negotiation.

To a causal reader who don't follow the reference to Part6 the "can" in
5.1 kind of implies a MAY.

For clarity of the importance of Vary I propose that the SHOULD
requirement is replicated in p3 5.1, replacing the current paragraph. 

   An HTTP/1.1 server SHOULD include a Vary header field
   (Section 16.5 of [Part6]) with any cacheable response that
   is subject to server-driven negotiation.

With the details of what Vary should contain left in p6 alone to
encourage the implementer to really follow the reference and read p6
when reaching this part of the spec.

Regards
Henrik