 core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php b/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php
index 84426c4..9af62f5 100644
--- a/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php
+++ b/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php
@@ -138,12 +138,18 @@ public function renderResponse(array $main_content, Request $request, RouteMatch
       isset($html['page_bottom']) ? $html['page_bottom']['#cache']['tags'] : [],
       ['rendered']
     );
+    $cache_contexts = Cache::mergeContexts(
+      isset($html['page_top']) ? $html['page_top']['#cache']['contexts'] : [],
+      $html['page']['#cache']['contexts'],
+      isset($html['page_bottom']) ? $html['page_bottom']['#cache']['contexts'] : []
+    );
 
     // Set the generator in the HTTP header.
     list($version) = explode('.', \Drupal::VERSION, 2);
 
     return new Response($content, 200,[
       'X-Drupal-Cache-Tags' => implode(' ', $cache_tags),
+      'X-Drupal-Cache-Contexts' => implode(' ', $cache_contexts),
       'X-Generator' => 'Drupal ' . $version . ' (http://drupal.org)'
     ]);
   }
