304 Problema no modificado

Perdón por el título probablemente incorrecto. Estoy escribiendo un código para manejar las solicitudes If-Modified-Since y If-None-Match como parte del almacenamiento en caché. Todo funciona perfecto, excepto que PHP devuelve algún contenido (una línea vacía) después de los encabezados. El contenido de la página debe estar vacío en su lugar. El código que estoy usando es:

<?php
$lastmod = filemtime($f);
$etag = '"'.dechex($lastmod).'"';
if ($_SERVER['HTTP_IF_MODIFIED_SINCE'] == $last_mod || $_SERVER['HTTP_IF_NONE_MATCH'] == $etag) {
  header('HTTP/1.1 304 Not Modified');
  header('Content-Length: 0');
  exit();
}
?>