I have a site (e.g. http://example.com) that uses Cloudflare. Nothing special, no weird page rules, no weird settings, free plan.
When I go to http://example.com, I get this response for the GET http://example.com request:
Cache-Control:no-cache, must-revalidate
CF-RAY:2b8d0490837f2828-SJC
Connection:keep-alive
Content-Encoding:gzip
Content-Type:text/html; charset=UTF-8
Date:Sun, 26 Jun 2016 01:52:05 GMT
Expires:0
Pragma:no-cache
Server:cloudflare-nginx
Transfer-Encoding:chunked
Vary:Accept-Encoding
X-Powered-By:Express
Notice that the response has no ETag header, even though it's enabled on my origin server.
When I go to the origin server directly, e.g. GET http://01.23.456.789/, I get this response:
Accept-Ranges:bytes
Cache-Control:no-cache, must-revalidate
Connection:keep-alive
Date:Sun, 26 Jun 2016 01:56:53 GMT
ETag:W/"4cf8-1558a5557a0"
Expires:0
Pragma:no-cache
X-Powered-By:Express
Does anyone know why Cloudflare wouldn't be forwarding the ETag header? How can I make Cloudflare forward the ETag? Cloudflare isn't caching the GET http://example.com request by default since it's an HTML page.