New issue
Advanced search Search tips
Starred by 1 user
Status: Fixed
Owner:
Closed: Jun 26
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment
Cancel push streams with the POST method
Project Member Reported by jakearchibald@chromium.org, May 30 Back to list
We don't currently match POST items in the push cache, so allowing them to be pushed is a waste of bandwidth.

Firefox and Edge currently reject pushed POST requests.

I built a little test suite thing for this: https://github.com/jakearchibald/http2-push-test/

The test is served at /push-post/.
 
POST push promises must be rejected according to RFC 7540 Section 8.2, so this is definitely a bug.

http://httpwg.org/specs/rfc7540.html#PushResources
"Promised requests MUST be cacheable (see [RFC7231], Section 4.2.3), MUST be safe (see [RFC7231], Section 4.2.1), and MUST NOT include a request body."

Cacheable => GET, HEAD, or POST
Safe => GET, HEAD, OPTIONS, or TRACE

Therefore, a push promise must be a GET or HEAD.
Ohh, I missed that bit in the spec. Cheers!
Cc: ckrasic@chromium.org
Components: Internals>Network>QUIC
Owner: b...@chromium.org
Status: Assigned
Buck: Could you please verify that QUIC does the right thing?  Thank you.  See https://crrev.com/2943113002/#msg7.  I thought I would have time this past week to write a QUIC unittest, but I didn't, sorry.

I landed https://crrev.com/2943113002 (not sure why it wasn't auto-posted to this issue), which solves the issue for HTTP2 over TCP.
Status: Fixed
Thank you for the quick response!  I'm then marking this issue as Fixed.
Sign in to add a comment