304 Responses / revalidations

We have a Drupal 8 site, using nginx and Adv/Agg with typical settings.

Our server never returns 304 response codes to requests for html documents, even if the etag is unchanged. It always returns a 200 response.

The server will return 304s for files, but never for HTML requests. I verified it with if-none-match requests and reviewing access logs.

Can someone tell us whether this is the expected behavior?

If it is expected behavior, why? Isn’t the purpose of the etags to support revalidation?

If it is not expected behavior, any suggestion for troubleshooting would be appreciated.