Closed Bug 1259459 Opened 8 years ago Closed 8 years ago

H2 Change 0 Len OPTIONS to have end-stream on headers for compat

Categories

(Core :: Networking: HTTP, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla48
Tracking Status
firefox48 --- fixed

People

(Reporter: mcmanus, Assigned: mcmanus)

Details

(Whiteboard: [necko-active][spdy])

Attachments

(1 file)

The end-stream bit defines the end of a request... it is on the last frame we transmit for that stream, that can be HEADERS or DATA.. even for 0 length request bodies, you can send a 0 len data frame with the end-stream bit.

And for OPTIONS that's what we do. We could also put it on the HEADERS when we know its 0 length (i.e. CORS), but there was a very old google.com bug in the spdy days with this scenario that made us put it in a data frame as a workaround. As that's a totally valid thing to do, we never changed it even as the google.com issue was resolved.

however, a bunch of server side implementations have tripped up over this. Its been nice to get them fixed (and they've been great about it), but let's revert to the more traditional end-stream on HEADERS for OPTIONS behavior to maximize interop. Zeus is known to have this issue and some unupdated windows stacks as well.
Whiteboard: [necko-active] → [necko-active][spdy]
Comment on attachment 8734379 [details] [diff] [review]
h2 0 length options puts end-stream on headers

Review of attachment 8734379 [details] [diff] [review]:
-----------------------------------------------------------------

I'm not sure which makes me sadder... that we had to put this hack in spdy in the first place, or that we have to un-do this perfectly legit hack now. r=me
Attachment #8734379 - Flags: review?(hurley) → review+
https://hg.mozilla.org/mozilla-central/rev/0fad49a543ea
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla48
You need to log in before you can comment on or make changes to this bug.