From: Alexander Ebert Date: Sat, 18 May 2024 11:08:19 +0000 (+0200) Subject: Fix the `expires` header and force lowercased http headers X-Git-Tag: 6.1.0_Alpha_1~85^2^2~13 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=8cfc9ebcddce1f67fad1f3c48f1cd0a4740a6a18;p=GitHub%2FWoltLab%2FWCF.git Fix the `expires` header and force lowercased http headers --- diff --git a/wcfsetup/install/files/lib/action/FileDownloadAction.class.php b/wcfsetup/install/files/lib/action/FileDownloadAction.class.php index 38576edfe4..506c05c6d1 100644 --- a/wcfsetup/install/files/lib/action/FileDownloadAction.class.php +++ b/wcfsetup/install/files/lib/action/FileDownloadAction.class.php @@ -83,18 +83,17 @@ final class FileDownloadAction implements RequestHandlerInterface $lifetimeInSeconds = $processor->getFileCacheDuration($file)->lifetimeInSeconds; if ($lifetimeInSeconds !== null) { - $expiresAt = \sprintf( - '%s GMT', - \gmdate('D, d M Y H:i:s', $lifetimeInSeconds) - ); + $expiresAt = (new \DateTimeImmutable('@' . \TIME_NOW)) + ->modify("+{$lifetimeInSeconds} seconds") + ->format(\DateTimeImmutable::RFC7231); $maxAge = \sprintf( 'max-age=%d, private', $lifetimeInSeconds ?: 0, ); $response = $response - ->withHeader('Expires', $expiresAt) - ->withHeader('Cache-control', $maxAge); + ->withHeader('expires', $expiresAt) + ->withHeader('cache-control', $maxAge); } $eTag = \sprintf( @@ -122,6 +121,6 @@ final class FileDownloadAction implements RequestHandlerInterface 'content-disposition', $contentDisposition->forFilename($file->filename), ) - ->withHeader('ETag', $eTag); + ->withHeader('etag', $eTag); } }