Skip to content

unnecessary use of 1#element for header field definitions #210

@royfielding

Description

@royfielding

When working on #164 I noticed that our existing use of 1#element (header fields requiring at least one list item) is kind of pointless. The following fields use it:

 Cache-Control   = 1#cache-directive
 Transfer-Encoding = 1#transfer-coding
 Connection        = 1#connection-option
 Upgrade          = 1#protocol
 Trailer = 1#field-name
 Via = 1#( received-protocol RWS received-by [ RWS comment ] )
 Content-Encoding = 1#content-coding
 Content-Language = 1#language-tag
 If-Match = "*" / 1#entity-tag
 If-None-Match = "*" / 1#entity-tag
 Accept-Charset = 1#( ( charset / "*" ) [ weight ] )
 Accept-Language = 1#( language-range [ weight ] )
 Vary = "*" / 1#field-name
 WWW-Authenticate = 1#challenge
 Proxy-Authenticate = 1#challenge

It is also used (incorrectly?) within Byte Ranges fields as

 byte-range-set  = 1#( byte-range-spec / suffix-byte-range-spec )
 acceptable-ranges = 1#range-unit / "none"

We should audit these because it makes more sense to handle empty fields as non-error conditions.

Metadata

Metadata

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions