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

Updated header casing bullet in section 17.2 #207

Open
wants to merge 2 commits into
base: vNext
Choose a base branch
from
Open

Updated header casing bullet in section 17.2 #207

wants to merge 2 commits into from

Conversation

JeffreyRichter
Copy link
Contributor

No description provided.

Guidelines.md Outdated
@@ -2162,7 +2162,7 @@ Services SHOULD use verbose naming patterns and SHOULD NOT use abbreviations oth
### 17.2. Casing
- Acronyms SHOULD follow the casing conventions as though they were regular words (e.g. Url).
- All identifiers including namespaces, entityTypes, entitySets, properties, actions, functions and enumeration values SHOULD use lowerCamelCase.
- HTTP headers are the exception and SHOULD use standard HTTP convention of Capitalized-Hyphenated-Terms.
- Ideally, HTTP headers are sent over hte wire using lowercase letters a the HTTP/2 specification mandates this ([RFC](https://http2.github.io/http2-spec/#HttpHeaders)). For backwards compatibility, services should treat request headers in a case-insensitive fashion. New services should send response headers in all lowercase. For legacy services (which do not send lowercase response headers), the client should process the response headers in a case-insensitive fashion. If a client converts headers into a map/dictionary where the lanaguge does not support looking up keys in a case-insensitive way, the client library should lowercase the header keys when adding them to the map/dictionary.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hte -> the. a -> as.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Jeffrey - thanks for the contribution. We're rather behind on reviewing PRs at this point, but we appreciate it nonetheless.

As well as Peter's comments above, can I ask that you express this change in normative language please. For example, I would have expected the backwards compatibility clause to be a MUST rather than a SHOULD, and capitalized regardless.

Also, it appears the link to the HTTP2 spec has become outdated. I believe this is now the correct link. https://httpwg.org/specs/rfc7540.html#HttpHeaders

I'm not sure I agree with the proposal for new services to return headers in lower case. It seems to me for optimum compatibility with marginally compliant older client implementations, this should be protocol dependent. If serving over Http/1.x services should return using the Capitalized-Hyphenated style whereas Http/2 should use lowercase-hyphenated.

Client behavioral guidance should be broken out from the main text, as these are not primarily client guidelines.

@microsoft-github-updates microsoft-github-updates bot changed the base branch from vNext to main January 14, 2021 20:56
@microsoft-github-updates microsoft-github-updates bot changed the base branch from main to vNext January 14, 2021 20:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants