Project: chromium Issues People Development process History Sign in
New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Issue 554220 Implement correct request matching for pushed responses
Starred by 8 users Project Member Reported by tombergan@chromium.org, Nov 10 2015 Back to list
Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug



Sign in to add a comment
When matching a request to pushed responses, Chrome needs to validate all relevant headers to ensure the pushed response is a valid match for the request. In particular, if the response contains a non-empty Vary header, the varied headers in the request should match those in the response's PUSH_PROMISE.

For further discussion, see here:
https://groups.google.com/a/chromium.org/forum/#!topic/net-dev/kuPNwmKZWzg
 
Cc: ckrasic@chromium.org
Comment 2 by b...@chromium.org, Apr 15 2016
Status: Available
Cc: tombergan@chromium.org
Cc: zhongyi@chromium.org
Comment 5 by ckrasic@google.com, Oct 5 2016
QUIC implementation of server push respects the Vary header.
Comment 6 by y...@yoav.ws, Nov 29 2016
Cc: y...@yoav.ws
In addition to Vary, a PUSH_PROMISE can in theory be a Range request that gets a pushed 206 response. Chrome needs to support this as well, at minimum by matching the Range header of the request with the Range header from the PUSH_PROMISE.

ckrasic@ -- From looking at the code (linked below), it looks like QUIC supports pushed responses with Vary but not pushed 206 responses?
https://cs.chromium.org/chromium/src/net/quic/core/quic_client_promised_info.cc?rcl=d25bb92682c7fb325d1f2b5608832a195fb0dd27&l=80
tombergan@ - correct, QUIC's push support does not consider range requests.
Cc: bol...@chromium.org
 Issue 727655  has been merged into this issue.
Cc: b...@chromium.org
+bnc@chromium.org
Project Member Comment 13 by bugdroid1@chromium.org, Today (19 hours ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/602c40ce2fb52c32518c074ebe56c2795d60a4bd

commit 602c40ce2fb52c32518c074ebe56c2795d60a4bd
Author: Bence Béky <bnc@chromium.org>
Date: Wed Jul 26 05:22:56 2017

Small cleanup in HTTP/2 and QUIC server push code.

* Remove unused QuicChromiumClientSession::GetStreamIdForPush().
* Remove unused SpdySession::GetStreamIdForPush().
* Add early returns in SpdySession::GetPushStream().
* Minor cleanup in SpdySession::TryCreatePushStream().
* Better error messages; change tests accordingly.

No functional change except for more informative error messages
(both in LOG() and in GOAWAY frames).

BUG=554220

Change-Id: If7d67c33d291a9dd2bd5b3721cf65aa17a7134d9
Reviewed-on: https://chromium-review.googlesource.com/584009
Commit-Queue: Bence Béky <bnc@chromium.org>
Reviewed-by: Helen Li <xunjieli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#489557}
[modify] https://crrev.com/602c40ce2fb52c32518c074ebe56c2795d60a4bd/net/quic/chromium/quic_chromium_client_session.cc
[modify] https://crrev.com/602c40ce2fb52c32518c074ebe56c2795d60a4bd/net/quic/chromium/quic_chromium_client_session.h
[modify] https://crrev.com/602c40ce2fb52c32518c074ebe56c2795d60a4bd/net/spdy/chromium/spdy_network_transaction_unittest.cc
[modify] https://crrev.com/602c40ce2fb52c32518c074ebe56c2795d60a4bd/net/spdy/chromium/spdy_session.cc
[modify] https://crrev.com/602c40ce2fb52c32518c074ebe56c2795d60a4bd/net/spdy/chromium/spdy_session.h

Sign in to add a comment