You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In "Don't Special-Case Grease Values" (#27), we have a request that implementers (not protocol designers) not do something.
I have seen -- numerous times -- that people are inclined to special case reserved grease values on receipt. This is a somewhat understandable thing, but it isn't always the obvious thing to do.
An example: A server that supports HTTP/3 with webtransport has to distinguish between bidirectional streams that are webtransport and ordinary requests. This is done by looking at the type of the first frame on the stream. The logic is supposed to be something like:
But there is an interesting wrinkle that makes this rough. There is only one HTTP/3 frame type that is described as fitting in this place (HEADERS). That means that you tend to get:
In "Don't Special-Case Grease Values" (#27), we have a request that implementers (not protocol designers) not do something.
I have seen -- numerous times -- that people are inclined to special case reserved grease values on receipt. This is a somewhat understandable thing, but it isn't always the obvious thing to do.
An example: A server that supports HTTP/3 with webtransport has to distinguish between bidirectional streams that are webtransport and ordinary requests. This is done by looking at the type of the first frame on the stream. The logic is supposed to be something like:
But there is an interesting wrinkle that makes this rough. There is only one HTTP/3 frame type that is described as fitting in this place (HEADERS). That means that you tend to get:
The result being that the implementation chokes on extensions or grease. To handle grease, I've seen people do this:
That's not the first time I've seen this happen, but it's a nice case study.
The text was updated successfully, but these errors were encountered: