Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Case sensitivity of extension point token ids #179

Closed
mnot opened this issue Nov 29, 2018 · 9 comments · Fixed by #308
Closed

Case sensitivity of extension point token ids #179

mnot opened this issue Nov 29, 2018 · 9 comments · Fixed by #308

Comments

@mnot
Copy link
Member

mnot commented Nov 29, 2018

E.g., range-units. Working on #133, it's not clear.

@mnot mnot added the semantics label Nov 29, 2018
@mnot
Copy link
Member Author

mnot commented Nov 29, 2018

Same question could be asked for transfer-codings, content-codings, cache-control directives, and a few other places. I suspect interop for case-varying things is not great in at least some of these places.

@wtarreau
Copy link

FWIW in haproxy the match for these is case-insensitive. The rationale here is that the Connection field contains tokens, which are header field names thus are case-insensitive, thus all other ones supposed to be tokens as well are de-facto case-insensitive. From a code perspective it makes sense since the same matching functions are used. BTW, 7234#5.2 says cache-control tokens are case-insensitive.

@wtarreau
Copy link

However for us the "q=" prefix for preferences is case-sensitive. Maybe that's wrong, I don't know :-/

@mnot
Copy link
Member Author

mnot commented Nov 29, 2018

Yep. This is mostly a reminder for me to do some testing :)

@wtarreau
Copy link

I know, hence my inputs as well :-)

@craigpratt
Copy link

I think the reality is that implementations generate (and many servers expect) the bytes range unit in lower case. But I'll have to look at some of the impls I'd looked at when considering the addition of a new range unit...

@mnot mnot self-assigned this Feb 2, 2020
@mnot
Copy link
Member Author

mnot commented Feb 3, 2020

Overview:

  • methods: defined as case-sensitive
  • field names: defined as case-insensitive in messaging, not semantics
  • transfer-codings: defined as case-insensitive
  • content-codings: not defined defined elsewhere
  • language tags: defined as case-insensitive
  • range-units: not defined
  • authentication scheme: defined as case-insensitive
  • media types: defined as case-insensitive
  • cache directives: defined as case-insensitive

@mnot mnot changed the title Are range-units case-sensitive? Case sensitivity of extension point token ids Feb 3, 2020
@mnot
Copy link
Member Author

mnot commented Feb 3, 2020

Based upon the above, I suggest we:

  • make both content-codings and range-units case-insensitive, as this appears to be an oversight
  • explicitly make field names case-insensitive in semantics

@mnot mnot removed the needs-data label Feb 3, 2020
@mnot
Copy link
Member Author

mnot commented Feb 4, 2020

Also, in most places the same sentence is used to encourage registration; we should do that where applicable.

mnot added a commit that referenced this issue Feb 4, 2020
mnot added a commit that referenced this issue Feb 4, 2020
mnot added a commit that referenced this issue Feb 4, 2020
@mnot mnot closed this as completed in #308 Feb 4, 2020
reschke added a commit that referenced this issue Feb 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging a pull request may close this issue.

3 participants