Skip to content

Commit

Permalink
bug #34385 Avoid empty "If-Modified-Since" header in validation reque…
Browse files Browse the repository at this point in the history
…st (mpdude)

This PR was squashed before being merged into the 3.4 branch (closes #34385).

Discussion
----------

Avoid empty "If-Modified-Since" header in validation request

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

Just noticed that when a response has been cached that is `public` and has an `maxAge` but does _not_ provide `Last-Modified`, the validation subrequest will have an empty `If-Modified-Since` header value.

Commits
-------

960faef Avoid empty \"If-Modified-Since\" header in validation request
  • Loading branch information
stof committed Nov 23, 2019
2 parents 814bdeb + 960faef commit 7d87ebc
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 1 deletion.
4 changes: 3 additions & 1 deletion src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php
Expand Up @@ -352,7 +352,9 @@ protected function validate(Request $request, Response $entry, $catch = false)
}

// add our cached last-modified validator
$subRequest->headers->set('if_modified_since', $entry->headers->get('Last-Modified'));
if ($entry->headers->has('Last-Modified')) {
$subRequest->headers->set('if_modified_since', $entry->headers->get('Last-Modified'));
}

// Add our cached etag validator to the environment.
// We keep the etags from the client to handle the case when the client
Expand Down
Expand Up @@ -859,6 +859,7 @@ public function testValidatesCachedResponsesUseSameHttpMethod()
public function testValidatesCachedResponsesWithETagAndNoFreshnessInformation()
{
$this->setNextResponse(200, [], 'Hello World', function ($request, $response) {
$this->assertFalse($request->headers->has('If-Modified-Since'));
$response->headers->set('Cache-Control', 'public');
$response->headers->set('ETag', '"12345"');
if ($response->getETag() == $request->headers->get('IF_NONE_MATCH')) {
Expand Down

0 comments on commit 7d87ebc

Please sign in to comment.